gpt4 book ai didi

javascript - 如何根据 JavaScript 中的值检查对象是否在数组中?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:58:22 24 4
gpt4 key购买 nike

例如,如何根据 id 检查 array2 中的所有对象是否存在于 array1 中?

const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }]
const array2 = [{ id: 1 }, { id: 2 }]

出于某种原因,我无法在 Google 上找到解决方案。

我想过这个:

const result = array1.every(obj1 => {
// what do use here? includes? contains?
})

console.log(result)

但我有点卡在代码中间了。对我来说最合乎逻辑的解决方案是使用 includes。但是,includes 似乎没有采用函数:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes .所以我不确定我是否可以通过 id 检查对象。

最佳答案

includes 仅当两个对象在内存中是相同的引用时才为真,但(可能)并非如此。相反,我最初会创建 array1idSet,然后检查是否每个 array2 id 在集合中。这样,您只需在最开始迭代一次 array1(Set 的查找时间为 O(1)):

const array1 = [{ id: 1 }, { id: 2 }, { id: 3 }];
const array2 = [{ id: 1 }, { id: 2 }];

const idSet = new Set(array1.map(({ id }) => id));
console.log(
array2.every(({ id }) => idSet.has(id))
);

(数组没有contains函数)

关于javascript - 如何根据 JavaScript 中的值检查对象是否在数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50980388/

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