首頁  >  文章  >  web前端  >  如何根據另一個物件陣列過濾一個物件數組?

如何根據另一個物件陣列過濾一個物件數組?

DDD
DDD原創
2024-11-02 03:34:30555瀏覽

How to Filter an Array of Objects Based on Another Array of Objects?

依另一個物件陣列過濾物件陣列

問題:

問題:

問題:

    給定兩個物件數組,目標是使用第二個數組作為參考,根據特定標準過濾第一個數組。具體來說,我們希望過濾第一個數組,使其僅包含與第二個數組中的物件匹配特定屬性(userid 和 projectid)的那些物件。
  1. 解決方案:
  2. 利用過濾器和陣列中的一些方法,我們可以實現以下解決方案:
  3. 第一個數組迭代:
  4. 在第一個數組上使用過濾器方法進行迭代
  5. 匹配檢查:

在過濾器回調函數中,使用第二個陣列上的some 方法來檢查是否存在與第一個陣列的目前元素相符的物件。基於 userid 和 projectid 屬性的數組

過濾:
<code class="js">const myArray = [{ userid: "100", projectid: "10", rowid: "0" },
                { userid: "101", projectid: "11", rowid: "1" },
                { userid: "102", projectid: "12", rowid: "2" },
                { userid: "103", projectid: "13", rowid: "3" },
                { userid: "101", projectid: "10", rowid: "4" }];

const myFilter = [{ userid: "101", projectid: "11" },
                { userid: "102", projectid: "12" },
                { userid: "103", projectid: "11" }];

const myArrayFiltered = myArray.filter((el) => {
  return myFilter.some((f) => {
    return f.userid === el.userid && f.projectid === el.projectid;
  });
});

console.log(myArrayFiltered);</code>

如果存在匹配,則 some 函數將返回 true,這將在過濾結果數組中保留該元素。

<code class="js">[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]</code>
例:預期結果:

以上是如何根據另一個物件陣列過濾一個物件數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn