js数组去重

数组是多种类型可以混合的

[undefined,null,NaN,{},{},NaN,undefined,null]

 

下面我们以一个带有重复元素的数组为例,总结下数组去重的4种方法

var arr = [1,2,2,3,3,4,4,5,5]

 

1.将数组转化为set(集合带有去重特性) 再转为array

//(4) [1, 2, 33, 4]

var arr2 = [...new Set(arr)]

 

2.用hash法(object的key去重)

//(4) ["1", "2", "4", "33"]

var obj={}
for (var i in arr) {
    obj[arr[i]] = true;
}
return Object.keys(obj);

 

3.建立新数组,遍历旧数组,新数组中没有的就添加

//(4) [1, 2, 33, 4]

var newArr = [];
for (var i in arr) {
    if (newArr.indexOf(arr[i]) === -1) {
        newArr.push(arr[i]);
    }
}
return newArr;

 

4.双重遍历旧数组,如果后面有与前面相同的,删除后面的值

for (var i=0, len=arr.length; i

 

结束

如果文章对你有帮助,麻烦点赞哦!一起走码农花路~

js数组去重_第1张图片

 

你可能感兴趣的:(js)