您的位置:首页 > Web前端 > JavaScript

js 数组去重的五种方法

2017-09-18 23:30 218 查看
// 去掉一个数组的重复元素,并返回的是新数组(这个有问题。这个的length会变,因此是错误的)
function quChong(arr){
var newArr=arr;
var temp={};
for(var i=0;i<=newArr.length;i++){
if(temp[newArr[i]]){
newArr.splice(i,1);
console.log("索引:"+i);
}else{
temp[newArr[i]]=1;
}
}
console.log(newArr);
}
// 去掉一个数组的重复元素(用对象存储是否存在过,问题是把“1”和1当做了同一个)
function quChong(arr){
var newArr=[];
var temp={};
for(var i=0;i<arr.length;i++){
if(!temp[arr[i]]){
temp[arr[i]]=1;
newArr.push(arr[i]);
}
}
console.log(newArr);
}
// 去掉一个数组的重复元素(用indexof判断,没在newArr中出现过就是-1)
function quChong1(arr){
var newArr=[];
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i])===-1){
newArr.push(arr[i]);
}
}
console.log(newArr);
}
//去掉一个数组的重复元素(用indexof判断,数字在arr中出现的索引是否和arr.indexOf索引一样,一样的话就是push,不一样就不push)
function quChong2(arr){
var newArr=[];
arr.forEach(function(item,index,arr){
if(arr.indexOf(item)===index)
newArr.push(item);
})
return newArr;
}
//上一个的简化版
function quChong3(arr){
return arr.filter(function(item,index,arr){
return arr.indexOf(item)===index;
});
}
//去重 ES6新方法 用set (Array.from是把new Set返回的字符串格式话成数组)
function quChong4(arr){
return Array.from(new Set(arr));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: