常规数组
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:'测试'}]