gpt4 book ai didi

Javascript,迭代两个对象数组并将一个项目从一个数组添加到另一个数组 "if it doesn' t 存在”

转载 作者:行者123 更新时间:2023-12-01 00:59:29 26 4
gpt4 key购买 nike

我有两个数组,一个包含字符串值,另一个包含整数值,尽管这可能很愚蠢,但我陷入了困境,我需要一点帮助,我想遍历两者,如果 arr1 包含 arr2 中不存在的项目,它将被推送到 newArray

这是我尝试过的

const arr1 = [
{id: 1, user_id: 1},
{id: 2, user_id: 2},
{id: 3, user_id: 3},
{id: 4, user_id: 4},
]

const arr2 = [
{id: '1', user_id: '1'},
{id: '2', user_id: '2'},
{id: '3', user_id: '3'},
]

const newArray = []

for (const x of arr1) {
for (const y of arr2) {
if (x.id !== +y.id) {
newArray.push(x);
break;
}
}
}

console.log(newArray);

这会添加 arr1 中的所有项目,而我想要推送到 newArray 的只是 arr1 中存在的项目,而不是 arr2 中存在的项目

提前致谢!

最佳答案

您可以选择 Set并过滤掉已知项目。

const
arr1 = [{ id: 1, user_id: 1 }, { id: 2, user_id: 2 }, { id: 3, user_id: 3 }, { id: 4, user_id: 4 }],
arr2 = [{ id: '1', user_id: '1' }, { id: '2', user_id: '2' }, { id: '3', user_id: '3' }],
exists = new Set(arr2.map(({ id }) => +id)),
missing = arr1.filter(({ id }) => !exists.has(id));

console.log(missing);

关于Javascript,迭代两个对象数组并将一个项目从一个数组添加到另一个数组 "if it doesn' t 存在”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56220194/

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