常规数组
let arry = [1,2,3,1,2]
解:
let end = [...new Set(arry)]
console.log(end) //[1,2,3]
原理:通过Set和拓展运算符
对象数组(利用对象不重复)
第一种
let arry = [{id:1,name:'测试'},{id:1,name:'测试'}]
解:
let obj ={}
arry = arry.reduce((item,next)=>{
obj[next.id]?'':obj[next.id] = true &&item.push(next)
return item
},[]);
console.log(arry) //[{id:1,name:'测试'}]
注意:reduce方法遍历数组,reduce第一个参数是遍历的函数,第二个参数是输出结果
第二种
let arry = [{id:1,name:'测试'},{id:1,name:'测试'}]
解:
let obj = {};
let result = [];
arry.forEach((item,idx)=>{
if(!obj[arry[idx].id]){
result.push(item)
obj[arry[idx].id] = true
}
})
console.log(result ) //[{id:1,name:'测试'}]
本文介绍如何使用Set和拓展运算符对常规数组进行去重,并提供两种方法处理对象数组,一种是利用reduce遍历并去重,另一种是使用forEach配合对象存储实现。

8万+

被折叠的 条评论
为什么被折叠?



