数组是多种类型可以混合的
[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<len; i++) {
for(var j=i; j<len; j++){
if(arr[i]===arr[j]){
arr=arr.splice(j,1);
}
}
}
return arr;
结束
如果文章对你有帮助,麻烦点赞哦!一起走码农花路~