簡體   English   中英

Javascript 過濾器和一些對象數組

[英]Javascript Filter and Some on Array of Objects

我有這個對象數組

[
 {
 appLearningItemId: 67
 catalogues: (2) [ {id: 1041, value: "New Catalog"},
                   {id: 1058, value: "Test"}]
 categories: (3) [{id: 1, value: "Soft Skills"},
                  {id: 3, value: "Non-technical"},
                  {id: 5, value: "Induction"}]
 code: "CCE0013"
 suppliers: (3) [{id: 1, value: "Company XYZ Ltd"},
                 {id: 2, value: "test c2"},
                 {id: 17, value: "new company"} ]
 title: "07 Values & Beliefs"
 type: {id: 11377, value: "Elearning"}
 }, ... * 682 items
]

我必須使用 4 個不同的 select 框、目錄、類別、供應商、類型來過濾此列表。

我可以過濾類型列表,因為它不在這樣的數組中

const typeList = this.originalLearningItems.filter(item => item.type.value === val.typeSearch)

但對於目錄、類別和供應商,它們是一個層次。 我努力了

 const listHasCatalogs = this.originalLearningItems.filter(item => item.catalogues.map(
            catalogs => catalogs.some(catalog => catalog.value == val.catalogSearch)

但我得到 catalogs.some 不是 object,我也嘗試了 catalogs.filter 但我得到了同樣的錯誤。

根據嵌套對象數組中的值過濾項目的最佳方法是什么?

.some是屬於 Arrays 的 function。 您在數組的每個元素上調用它。

試試這個。

const listHasCatalogs = this.originalLearningItems
    .filter(item => 
        item.catalogues.some(catalog => catalog.value == val.catalogSearch)
    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM