gpt4 book ai didi

javascript - 如何在删除重复项的同时合并对象数组

转载 作者:行者123 更新时间:2023-12-03 02:32:12 25 4
gpt4 key购买 nike

我需要比较两个对象数组并删除重复项并将它们合并为一个。我对 javascript/Typescript 有点陌生。我读过一些使用 Map、reduce、filter 来完成这项工作的博客。这是正确的方法吗?

但是,我想知道是否可以创建它的 map 以及 Map.ContainsKey 或 Map.getvalues();

在实际问题中,对象非常庞大,有多个键,甚至数组有数百条记录。

   [
{
Name: Roger
Country : spain
},
{
Name:Tiger
Counry : USA
},
{
Name: Micheal
Country: USA
},
]


[
{
Name: sachin
Country : India
},
{
Name:Roger
Counry : Spain
},
]

output

[
{
Name: Roger
Country : spain
},
{
Name:Tiger
Counry : USA
},
{
Name: Micheal
Country: USA
},
{
Name: sachin
Country : India
}
]

最佳答案

您可以将所需值的哈希表作为键,并推送哈希表中没有标志的元素。

var array1 = [{ Name: 'Roger', Country: 'Spain' }, { Name: 'Tiger', Counry: 'USA' }, { Name: 'Micheal', Country: 'USA' }],
array2 = [{ Name: 'sachin', Country: 'India' }, { Name: 'Roger', Country: 'Spain' }],
hash = Object.create(null),
result = [array1, array2].reduce(function (r, a) {
a.forEach(function (o) {
var key = ['Name', 'Country'].map(k => o[k]).join('|');
if (!hash[key]) {
r.push(o);
hash[key] = true;
}
});
return r;
}, []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 如何在删除重复项的同时合并对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48691800/

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