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数组操作方法总结(必看篇)全部内容了,希望大家多多支持毛票票~