1:数组去重的es6方法,Array.from()或者扩展运算符和 Set 结构相结合
// 以上两种方法都用了Set结构成员的值都是唯一的这一特性,本质上是Set结构进行的去重的工作,而Array.from()和扩展运算符只是将返回的结果转化成数组而已
function dedupe(array) {
return Array.from(new Set(array)); //方法一返回一个Array.from()包含的set
return [...new Set(array)] // 方法二,用扩展运算符
}
dedupe([1, 1, 2, 3]) // [1, 2, 3]
2:reduce数组去重(图片为reduce的语法)
1.png
let arr4 = [1,3,2,5,3,1,2,7,8];
let newArr = arr4.reduce((pre,cur)=>{
/*
1
1,3
1,3,2
1,3,2,5(打印四次)
1,3,2,5,7
undefined
*/
console.log(`${pre}`)
if(!pre.includes(cur)){
return pre.concat(cur)
} else {
return pre
}
},[]);
3:filter过滤的方法(利用下标,比较第一次出现的位置是否相等,若不相等证明这个元素出现了多次则可以排除)
let arr = [1,2,3,4,4,5,6,5,8]
let res = arr.filter((item,index,newArr) => {
if(index === newArr.indexOf(item)){
return item
}
})
console.log(res) // [1,2,3,4,5,6,8]
4: