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

如何根據巢狀值使用陣列過濾物件數組?

DDD
發布: 2024-10-29 03:08:02
原創
165 人瀏覽過

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

使用基於巢狀值的陣列過濾物件陣列

問題:如何依照巢狀值過濾物件陣列?

輸入:

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

所需輸出:

<code class="javascript">let filteredArray = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 1}
        ]
    }
];</code>
登入後複製

初始嘗試: >

<code class="javascript">let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));</code>
登入後複製

問題:此方法傳回具有所有姓氏的對象,而不是將它們修剪掉。

解:

<code class="javascript">arrayOfElements.map((element) => {
    return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})</code>
登入後複製

說明:

此方法使用map() 方法迭代使用map(Elements 。
  • 對於每個元素,它將其屬性分散到一個新物件。
  • 然後在 subElements 陣列上使用 filter() 來只保留那些滿足條件的子元素 (surname === 1)。
  • 然後使用過濾後的 subElements 覆寫原始子元素數組。

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

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