如何通过新集合从对象中获取唯一数组?

如何通过新集合从对象中获取唯一数组?


我有一个包含对象的数组,如何获得唯一的数组,但只能保留 id?


IE:[{id: 1, title: 'test1'}, {id: 2, title: 'test2'}]


const arr = [{id: 1, title: 'test1'}, {id: 2, title: 'test2'}, {id: 1: title: 'test1'}]

const filtered = arr.filter((item) => item.title)

const result = Array.from(new set(arr))


慕田峪4524236
浏览 111回答 2
2回答

小怪兽爱吃肉

您可以使用哈希表并获取它的值。这种方法采用最后找到的具有相同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);

Cats萌萌

比起集合,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()]);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript