gpt4 book ai didi

javascript - 获取对象数组中重复对象的列表

转载 作者:搜寻专家 更新时间:2023-10-30 22:04:28 27 4
gpt4 key购买 nike

我正在尝试获取对象数组中的重复对象。假设对象如下所示。

values = [
{ id: 10, name: 'someName1' },
{ id: 10, name: 'someName2' },
{ id: 11, name: 'someName3' },
{ id: 12, name: 'someName4' }
];

重复的对象应该像下面这样返回:

duplicate = [
{ id: 10, name: 'someName1' },
{ id: 10, name: 'someName2' }
];

最佳答案

您可以使用 Array#reduce根据 id 键制作一个计数器查找表,然后使用 Array#filter删除在查找表中只出现一次的任何项目。时间复杂度为 O(n)。

const values = [{id: 10, name: 'someName1'}, {id: 10, name: 'someName2'}, {id: 11, name:'someName3'}, {id: 12, name: 'someName4'}];

const lookup = values.reduce((a, e) => {
a[e.id] = ++a[e.id] || 0;
return a;
}, {});

console.log(values.filter(e => lookup[e.id]));

关于javascript - 获取对象数组中重复对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53212020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com