前端面试如何能更优雅(装bei)的回答问题呢?
数组去重
不会还有人用for循环加indexOf吧,不会吧,不会吧,阿sir!
let arr = [1, 2, 3, 3, 4, 5, 5, 6]
let newArr = arr.filter((item, index, self) =>
index === self.indexOf(item)
)
console.log(newArr) // [ 1, 2, 3, 4, 5, 6 ]
let newArr2 = Array.from(new Set(arr))
let newArr3 = [...new Set(arr)]
console.log(newArr2) // [ 1, 2, 3, 4, 5, 6 ]
console.log(newArr3) // [ 1, 2, 3, 4, 5, 6 ]
console.log(arr) // [1, 2, 3, 3, 4, 5, 5, 6]
还有没有更装bei得? 答案是·肯定的
let arr = [1,2,1,2,3,5,4,5,3,4,4,4,4];
let result = arr.sort().reduce((init, current) => {
if(init.length === 0 || init[init.length-1] !== current) {
init.push(current);
}
return init;
}, []);
console.log(result); //[1,2,3,4,5]
如果你对reduce()的写法·感到不解,请移步 reduce (基础篇)讲到你会为止
持续更新中...
网友评论