js数组操作
来源:互联网 发布:kegg数据库 编辑:程序博客网 时间:2024/05/22 01:36
1. 数组元素去除重复?
方案一:
var arr=[1,2,3,'4','3',5,2];var result=unique( arr);for( var i=0;i<result.length;i++){document.write( result[i] +"<br />");}function unique( arr ){var result=[];for( var i=0;i<arr.length;i++){if( result.indexOf( arr[i])==-1 ){result.push( arr[i] );}}return result;}方案二:字符和数字相同也认为相同
var arr=[1,2,3,'4','3',5,2];var result=unique( arr);for( var i=0;i<result.length;i++){document.write( result[i] +"<br />");}function unique( arr ){var result=[];var hash={};for( var i=0;i<arr.length;i++){if( !hash[arr[i]] ){hash[arr[i]]=true;result.push( arr[i] );}}return result;}
2. 数组顺序扰乱?
方案一:
var arr=[1,2,3,'4','3',5,2];var result=shuffle( arr);for( var i=0;i<result.length;i++){document.write( result[i] +"<br />");}//每次随机抽取一个数并存到新数组中,并删除被抽中的数。function shuffle( array){var copy=[];n=array.length;var i;while( n){i=Math.floor( Math.random()*array.length );if( i in array){copy.push( array[i] );delete array[i];n--;}}return copy;}方案二:
var arr=[1,2,3,'4','3',5,2];var result=shuffle( arr);for( var i=0;i<result.length;i++){document.write( result[i] +"<br />");}//与上一个相似,只是通过splice去掉重复的选项.function shuffle( array){var copy=[];n=array.length;var i;while( n){i=Math.floor( Math.random()*n-- );copy.push( array.splice(i,1)[0] );}return copy;}
方案三:
var arr=[1,2,3,'4','3',5,2];var result=shuffle( arr);for( var i=0;i<result.length;i++){document.write( result[i] +"<br />");}//从前面抽取数字跟最后一个交换,即每一次前第n个数与最后一个交换,第二次前n-1个数与第n-1个交换function shuffle( array){var m=array.length, t, i;while( m){i=Math.floor( Math.random() * m--);t=array[m];array[m]=array[i];array[i]=t;}return array;}
问题三: 如何判断一个对象是一个数组?
var arr=[1,2,3,'4','3',5,2];alert( Array.isArray( arr) );alert( arr instanceof Array );
问题四: 两个数组如何求出交集?
var arr=[1,2,3,'4','3',5,2,'8'];var arr2=[2,3,'4',8];var r=arr.filter( function( n ){return arr2.indexOf( n)!=-1;});alert( r );
问题五: 两个数组如何求出并集?
var arr=[1,2,3,'4','3',5,2,'8'];var arr2=[2,3,'4',8,20];function arrayunion( array,arr2){var a=array.concat(arr2);for( var i=0;i<a.length;i++){for( var j=i+1;j<a.length;j++){if( a[i]===a[j] ){a.splice (j--, 1);}}}return a;}var r=arrayunion( arr,arr2);alert( r );
问题六:两个数组如何求出差集?
var arr=[1,2,3,'4','3',5,2,'8'];var arr2=[2,3,'4',8,20];Array.prototype.diff=function( a){return this.filter( function(i){return a.indexOf(i)<0;});}alert( arr.diff( arr2) );
0 0
- 【js】js数组操作
- javascript(js)数组操作
- js操作数组汇总
- JS数组操作
- js数组的操作
- js数组的操作
- JS的数组操作
- js 数组操作集锦
- JS数组操作
- js 数组操作
- js 数组操作
- js 常用数组操作
- js 数组操作
- js 数组操作2
- js数组的操作
- js数组操作
- js数组的操作
- js数组的操作
- Hibernate – One-to-One example (Annotation)
- 新书《Android安全技术揭秘与防范》终于出版了
- IP Address-2015
- angularJS URL中的锚点(#)
- qml学习-------------使用Loader动态创建和删除组件
- js数组操作
- iOS软件开发 设置启动页面
- Android OOM分析总结
- 重定向和转发的区别【转】
- SSL与TLS的区别以及介绍
- 基于linux的bond技术
- iOS 核心动画-基础动画
- JSP九大内置对象和四大作用域
- **泛型类。**