var arr=[{id:'1', name:'张三'},{id:'1', name:'李四'},{id:'2', name:'王二'},{id:'3', name:'张三'}]
1、使用reduce去重
var obj={};
arr = arr.reduce((val,item)=> {
// 根据name去重也可根据某个字段去重
if(!obj[item.name]){
val.push(item)
obj[item.name] = true; // 设置true
}
return val;
},[]) 这要初始设置一个空数组,不设置会报错
console.log(arr) 结果是:[{id: '1', name: '张三'},{id: '2', name: '李四'}]
2、使用forEach去重
var brr=[],obj={};
arr.forEach((item,index)=>{
if(!obj[item.name]){
brr.push(item)
obj[item.name] = true;
}
})
console.log(brr);结果是:[{id: '1', name: '张三'},{id: '2', name: '李四'}]
3、使用es6语法中的new Set()
const arr = new Set([1,1,2,2,3,4]);
console.log(arr); // {1, 2, 3, 4}