首頁 > web前端 > js教程 > 主體

如何根據嵌套值數組過濾物件數組?

DDD
發布: 2024-10-30 23:46:30
原創
794 人瀏覽過

How to Filter an Array of Objects Based on a Nested Value Array?

使用巢狀值陣列過濾物件陣列

根據巢狀值過濾物件陣列可能是常見的挑戰。為了解決這個問題,讓我們檢查提供的小提琴:

輸入陣列:

let arrayOfElements = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1},
            {"surname": 2}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 3},
            {"surname": 1}
        ]
    },
    {
        "name": "c",
        "subElements": [
            {"surname": 2},
            {"surname": 5}
        ]
    }
];
登入後複製

所需輸出:

let filteredArray = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 1}
        ]
    }
];
登入後複製

原始過濾方法:

let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));
登入後複製

雖然此公式確實過濾數組,但它會傳回具有所有姓氏的對象,而不是刪除它們。

改進過濾方法:

arrayOfElements.map((element) => {
  return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})
登入後複製

此方法利用展開運算子 (...) 為陣列中的每個元素建立一個新物件。在新物件內,subElements 屬性被過濾為僅包含具有所需姓氏值的物件 (surname === 1)。

使用此方法,您可以透過迭代應用以下方法來過濾具有任意深度巢狀物件的陣列映射函數來存取和過濾所需的資料。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!