js数组操作方法总结(必看篇)
判断数值数组中各个数字出现的奇偶次数
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="utf-8"> <title>数组操作</title> </head> <body> <scripttype="text/javascript"> vararr=[3,1,2,2,1,3,1]; varsum=[]; varres=[]; varcount=0; vartemp; for(vari=0;i<arr.length;i++){ if(res.indexOf(arr[i])==-1){ res.push(arr[i]); } } for(vari=0;i<res.length;i++){ for(varj=0;j<arr.length;j++){ if(arr[j]==res[i]){ count++; } } sum.push(count); count=0; } console.log(res);//[3,1,2] for(vari=0;i<res.length;i++){ varstr=(sum[i]%2==0)?"偶数":"奇数"; console.log(res[i]+"出现了"+sum[i]+"次"); console.log(res[i]+"出现了"+str+"次"); } </script> </body> </html>
阿里笔试-数组操作-找出两个数组中不同的元素
<scripttype="text/javascript"> functiondiff(arr1,arr2){ varress=[]; vararr=arr1.concat(arr2); for(vari=0,len=arr.length;i<len;i++){ if((arr1.indexOf(arr[i])>=0&&arr2.indexOf(arr[i])<0)||(arr1.indexOf(arr[i])<0&&arr2.indexOf(arr[i])>=0)){ ress.push(arr[i]); } } returnress; } vararr1=[1,2,3,5,7,6]; vararr2=[1,2,5]; varres=diff(arr1,arr2); console.log(res);//[3,7,6] </script>
数组去重
方法1
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="utf-8"> <title>数组去重01</title> </head> <body> <scripttype="text/javascript"> //给数组原型添加方法 Array.prototype.unique=function(){ vararr=[]; for(vari=0,i=this.length;i<len;i++){ if(arr.indexOf(this[i])==-1){ arr.push(this[i]); } } returnarr; }; console.log([1,2,3,2,5,6,3].unique());//[1,2,3,5,6] </script> </body> </html>
方法2
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="utf-8"> <title>数组去重02</title> </head> <body> <scripttype="text/javascript"> Array.prototype.unique=function(){ varn={}, r=[];//n为哈希表,r为临时数组 for(vari=0;i<this.length;i++)//遍历当前数组 { if(!n[this[i]])//如果hash表中没有当前项 { n[this[i]]=true;//存入哈希表 r.push(this[i]);//把当前数组的当前项push到临时数组里面 } } returnr; } console.log([1,2,3,2,5,6,3].unique());//[1,2,3,5,6] </script> </body> </html>
方法3
<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="utf-8"> <title>数组去重</title> </head> <body> <scripttype="text/javascript"> Array.prototype.unique=function(){ vararr=[this[0]];//结果数组 for(vari=1;i<this.length;i++){//从第二项开始遍历 if(this.indexOf(this[i])==i){ //如果当前数组的第i项在当前数组中第一次出现的位置不是i,那么表示第i项是重复的,忽略掉。否则存入结果数组 arr.push(this[i]); } } returnarr; } console.log([1,2,3,4,2,3,4].unique());//[1,2,3,4] </script> </body> </html>
方法4
<!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <metahttp-equiv="X-UA-Compatible"content="IE=edge"> <title>filter</title> <linkrel="stylesheet"href=""> </head> <body> <scripttype="text/javascript"> vararr=[4,5,3,2,3,4,5,1]; functionfn(num){ varres=num.filter(function(item,index,array){ returnnum.indexOf(item)===index;//num.indexOf(item)将会返回元素在数组第一次出现的位置 //对于多次出现的元素,除第一次外,其他情况都返回false }); returnres; } console.log(fn(arr));//[4,5,3,2,1] </script> </body> </html>
方法5
<!DOCTYPEhtml> <html> <head> <metacharset="utf-8"> <metahttp-equiv="X-UA-Compatible"content="IE=edge"> <title>Object对象来当做哈希表</title> <linkrel="stylesheet"href=""> </head> <body> <scripttype="text/javascript"> functionunique(a){ varobj={}; returna.filter(function(item){//filter会返回true的项组成的成员 returnobj.hasOwnProperty(item)?false:(obj[item]=true); }); } vara=[1,1,3,2,1,2,4]; varres=unique(a); console.log(res);//[1,3,2,4] </script> </body> </html>
以上就是小编为大家带来的js数组操作方法总结(必看篇)全部内容了,希望大家多多支持毛票票~