对于对象中有重复的属性和值,将该对象从数组中去重
以下一次数组对象为例子
const arrList = [
{id: 1, name: "zhangsan",age: "18"},
{id: 1, name: "lisi",age: "16"}
{id: 1, name: "wangli",age: "16"}
{id: 1, name: "yangliu",age: "10"}
{id: 1, name: "tangran",age: "28"}
];
1、第一种方法:使用数组的reduce方法实现
let obj = {};
const newArr = arrList.reduce((pre, cur)=> {
obj[cur.age] ? "" : obj[cur.age] =true && pre.push(cur);
return pre;
},[])
console.log(newArr)
2、第二种方法: 冒泡排序法
for(let i = 0; i<arrList.length-1;i++) {
for(let j=i+1;j<arrList.length;j++){
if(arrList[i].age === arrList[j].age) {
arrList.splice(j,1);
}
}
}
console.log(arrList);
3、第三种方法:双重循环
const newArr = [];
arrList.forEach(item =>{
let check = newArr.every(arrItem => {
return arrItem.age !== item.age;
})
check ? newArr.push(item) : "";
}
console.log(newArr);
4、第四种方法: ES6 Map对象方法
let newMap = new Map();
for(let item of arrList) {
if(!newMap.has(item.age)) {
newMap.set(item.city, item);
}
}
let newArr = [...newMap.values()];
console.log(newArr);