2 回答
TA贡献1852条经验 获得超1个赞
您可以使用哈希表并获取它的值。
这种方法采用最后找到的具有相同id.
const
array = [{ id: 1, title: 'first' }, { id: 2, title: 'test2' }, { id: 1, title: 'last' }],
unique = Object.values(array.reduce((r, o) => (r[o.id] = o, r), {}));
console.log(unique);
通过使用Set带有闭包的 a ,您可以过滤数组。
这种方法采用第一个找到的具有相同id.
const
array = [{ id: 1, title: 'first' }, { id: 2, title: 'test2' }, { id: 1, title: 'last' }],
unique = array.filter((s => ({ id }) => !s.has(id) && s.add(id))(new Set));
console.log(unique);
TA贡献1805条经验 获得超9个赞
比起集合,Map 可能更好,只需创建一个以 id 为键的映射即可。
例如。
const arr = [{id: 1, title: 'test1'}, {id: 2, title: 'test2'}, {id: 1, title: 'test1'}];
const d = new Map(arr.map(m => [m.id, m]));
console.log([...d.values()]);
添加回答
举报