共计 1027 个字符,预计需要花费 3 分钟才能阅读完成。
数组是 JavaScript 中最常见的一种数据结构,数组去重在开发过程中和面试过程中都会常常遇到,现整顿了一些用于数组去重的办法,能够用于前端面试筹备资料。
〇、先筹备一个数组
let arr = [1,2,3,4,5,3,2,1,'','','1',{},{},null,null,NaN,NaN,undefined,undefined]
一、ES6 中的 Set 构造
let arr1 = [...new Set(arr)];
console.log(arr1); //[1, 2, 3, 4, 5, "","1", {…}, {…}, null, NaN, undefined]
二、利用 filter() 办法
let arr2 = arr.filter((item,index)=>{return arr.indexOf(item) == index
})
console.log(arr2); // [1, 2, 3, 4, 5, "","1", {…}, {…}, null, undefined]
三、两层 for 循环 + splice()
function quchong(arr){for(let i=0;i<arr.length;i++){for(let j=i+1;j<arr.length;j++){if(arr[i] == arr[j]){arr.splice(j,1);
j--;
}
}
}
return arr
}
let arr3 = quchong(arr);
console.log(arr3); //[1, 2, 3, 4, 5, "", {…}, {…}, null, NaN, NaN]
四、利用 indexOf()
function quchong2(arr){let arr_ = [];
for(let i=0;i<arr.length;i++){if(arr_.indexOf(arr[i]) == -1){arr_.push(arr[i])
}
}
return arr_
}
let arr4 = quchong2(arr);
console.log(arr4); //[1, 2, 3, 4, 5, "", {…}, {…}, null, NaN, NaN]
五、利用 reduce() + includes()
let arr5 = arr.reduce((prev,cur)=>{if(!prev.includes(cur)){prev.push(cur)
}
return prev
},[])
console.log(arr5) //[1, 2, 3, 4, 5, "", {…}, {…}, null, NaN]
【作者程度无限,欢送大家在评论区交换斧正~】
正文完
发表至: javascript
2020-11-07