为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕田峪4524236 2023-07-14 16:32:28
如何通过新集合从对象中获取唯一数组?我有一个包含对象的数组,如何获得唯一的数组,但只能保留 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))
查看完整描述

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);


查看完整回答
反对 回复 2023-07-14
?
Cats萌萌

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()]);


查看完整回答
反对 回复 2023-07-14
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信