1、Reduce方法
const objects = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' },
];
const uniqueObjects = objects.reduce((acc, current) => {
const isDuplicate = acc.find(obj => obj.id === current.id && obj.name === current.name);
if (!isDuplicate) {
acc.push(current);
}
return acc;
}, []);
console.log(uniqueObjects);
2、JSON.stringfy + set + Object.assign
const objects = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' },
];
const uniqueObjects = Array.from(new Set(objects.map(obj => JSON.stringify(Object.assign(obj, obj))))).map(str => JSON.parse(str));
console.log(uniqueObjects);
lodash
import _ from 'lodash';
const objects = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' },
];
const uniqueObjects = _.uniqBy(objects, obj => `${obj.id}-${obj.name}`);
console.log(uniqueObjects);