// 根据name属性去重 数据的第一项和第二项因为name相同,也会被认为是一项
const arr = [
{ name: "1", age: 12 },
{ name: "2", age: 12 },
{ name: "2", age: 15 },
];
const handlerArr = (arr) => {
const namesArr = [...new Set(arr.map((item) => item.name))];
const newArr = namesArr.map((item) =>
arr.find((items) => items.name === item)
);
return newArr;
};
// 方法二: map 去重
const map = new Map();
arr.forEach((item) => {
const key = item["name"];
if (!map.has(key)) {
map.set(key, item);
}
});
console.log([...map.values()]);
// 根据整个对象去重
const arr = [
{ name: "1", age: 12 },
{ name: "2", age: 12 },
{ name: "2", age: 15 },
{ name: "2", age: 15 },
];
const handlerArr = (arr) => {
const newArr = arr.map((items) => ({
...items,
jsonStr: JSON.stringify(items),
}));
const setArr = [...new Set(newArr.map((item) => item.jsonStr))];
const list = setArr.map((item) =>
newArr.find((items) => items.jsonStr === item)
);
return list;
};
// 方法二
const newArr = [...new Set(arr.map((item) => JSON.stringify(item)))].map(
(item) => JSON.parse(item)
);