首頁  >  文章  >  web前端  >  如何根據另一個數組中的匹配屬性來過濾物件數組?

如何根據另一個數組中的匹配屬性來過濾物件數組?

Linda Hamilton
Linda Hamilton原創
2024-11-02 08:50:02161瀏覽

How to Filter an Array of Objects Based on Matching Properties in Another Array?

使用另一個物件陣列過濾物件陣列

目前的任務是根據第二個物件陣列(myFilter) 僅傳回myArray 中其userid 和projectid 屬性與myFilter 中的那些物件相符的物件。

解決方案

為了實現這一點,我們利用過濾器和一些方法的組合。 filter 方法迭代 myArray 中的每個元素並傳回一個新數組,該數組僅包含那些通過給定條件的元素。在這種情況下,如果元素的 userid 和 projectid 與 myFilter 中的任何 userid 和 projectid 對匹配,則滿足條件。

過濾條件中使用 some 方法來決定 myFilter 中的任何元素是否符合指定的標準。此條件檢查目前 myFilter 元素的 userid 和 projectid 屬性是否等於目前 myArray 元素的 userid 和 projectid 屬性。如果找到匹配項,則 some 方法傳回 true,表示滿足條件,且該元素應包含在過濾後的陣列中。

程式碼範例

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

輸出

[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]

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

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