繁体   English   中英

检查对象数组是否包含来自其他对象数组的值

[英]Check if array of objects contains value from other array of objects

我有以下对象数组: 在此处输入图片说明

我需要检查这两个数组是否具有相同的begin属性。 在这种情况下,这在三个对象中似乎都是正确的。 到目前为止,我已经尝试过这段代码,但没有运气( input.value是第一个数组)。

const found = input.value.some((item) => item.begin === filtered.filter((time) => time.begin));

任何想法我怎么能做到这一点? 先感谢您。

您可以为filtered的开始使用一个Set ,并在没有更多迭代的情况下检查该集合。

大 O是 O(n),因为创建集合的O(n)和检查的另一个O(n)并且因为添加两个n你得到 O(n)。

一种方法是因为嵌套结构 O(n 2 )。

const
    filteredSet = new Set(filtered.map(({ begin }) => begin)),
    found = input.value.some(({ begin }) => filteredSet.has(begin));

您可以使用简单的mapfindIndex方法。

const found = input.value.map((item) => filtered.findIndex((time) => time.begin === item.begin) > -1).findIndex((item) => item === true) > -1;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM