[英]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.