需要将重复的对象进行过滤,正常的数组我们通常都能找到方法进行解决,但对对象数组进行去重处理
var arr= [{
name: 小白,
age: 11
},{
name: 小白,
age: 11
}, {
name: 小黑,
age: 14
}, {
name: 小兰,
age: 13
}, {
name: 小兰,
age: 13
},];
方法一:
我们可以借助对象访问属性的方法,判断属性是否存在,如果已存在则进行过滤
var newarr= [];
var obj = {};
for(var i =0; i<arr.length; i++){
if(!obj[arr[i].name]){
newarr.push(arr[i]);
obj[arr[i].name] = true;
}
}
console.log(newarr) ;
方法二:
我们可以借助数组中reduce方法,访问遍历数组,其也是借助访问对象属性方法
var obj = {};
arr= arr.reduce(function(item, index) {
obj[index.name] ? '' : obj[index.name] = true && item.push(index);
return item;
}, []);
console.log(arr)