簡體   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