gpt4 book ai didi

javascript - 检查合并的数组是否包含来自两个数组的项目并更新合并的数组 JS

转载 作者:行者123 更新时间:2023-11-30 08:21:41 24 4
gpt4 key购买 nike

我有两个数组。我合并它并删除重复项。合并是通过考虑数组的所有键来完成的(数组 1 中对象中的所有键值必须与数组 2 中的键值匹配)。

var result1 = [{
name: 'Sandra',
email: 'sandra@example.com'
},
{
name: 'John',
email: 'johnny@example.com'
},
{
name: 'Peter',
email: 'peter@example.com'
},
{
name: 'Bobby',
email: 'bobby@example.com'
},
{
name: 'Arun',
email: 'arun@gmail.com'
},
];

var result2 = [{
name: 'John',
email: 'johnny@example.com'
},
{
name: 'Bobby',
email: 'bobby@example.com'
},
{
name: 'Arun',
email: 'arun@example.com'
}
];

var result= _.uniqWith(_.concat(result1, result2), _.isEqual)

现在我需要用 array1 和 array2 的每一项检查合并数组的每一项,并更新合并数组是否存在。

所以我的最终结果应该是这样的。

var result = [{
name: 'Sandra',
email: 'sandra@example.com',
presentInA: true,
presentInB: false
},
{
name: 'John',
email: 'johnny@example.com',
presentInA: true,
presentInB: true
},
{
name: 'Peter',
email: 'peter@example.com',
presentInA: true,
presentInB: false
},
{
name: 'Bobby',
email: 'bobby@example.com',
presentInA: true,
presentInB: true
},
{
name: 'Arun',
email: 'arun@example.com',
presentInA: false,
presentInB: true
},
{
name: 'Arun',
email: 'arun@gmail.com',
presentInA: true,
presentInB: false
}
];

我该如何以最佳方式做到这一点?我想我可以通过遍历所有 3 个数组来做到这一点,但这是一种糟糕的做法。

请指教。

最佳答案

你可以这样做

result.map(
per => ({
name: per.name,
email: per.email,
presentInA: _.find(
result1, (o) => o.nombre === per.nombre && o.email === per.email
) ? true : false,
presentInB: _.find(
result2, (o) => o.nombre === per.nombre && o.email === per.email
) ? true : false,
})
)

关于javascript - 检查合并的数组是否包含来自两个数组的项目并更新合并的数组 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52556392/

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