簡體   English   中英

如果一個屬性也是 Angular 7 中的一個數組,則比較兩個對象的 arrays?

[英]Comparing two arrays of objects if one property is also an array in Angular 7?

我有兩個 arrays:首先 - 包含數組 itemIds 的對象的作業數組,如下所示:

jobs: [{
        name: null
        id: 612
        items: []
        stat: 1
        itemIds: [223, 1234]
    },
    {
        name: null
        id: 734
        items: []
        stat: 2
        itemIds: [564]
    }
    .
    .
    .
]

和第二個數組 - 項目,像這樣:

items: [{
        act: true
        id: 1234
        name: "Item1"
    },
    {
        act: true
        id: 222
        name: "Item2"
    },
]

如何過濾出 id 不等於作業數組中的任何 itemId 或作業數組中的屬性 stat 不等於 0 的項目數組? 我嘗試了三個循環,但它在一系列作業中只刪除了一個具有相同 ID 的項目。 任何幫助表示贊賞。

我們將使用Array.filter循環遍歷items中的每個元素,並創建一個僅包含您要保留的項目的新數組。

對於每個值,我們將查看是否有任何作業在itemIds中包含代碼id 為此,我們將遍歷每個作業,並且對於每個作業,我們將查看底層的ItemsIds值。

這里的Array.some一旦找到東西就會離開。

 const jobs = [{ name: null, id: 612, items: [], stat: 1, itemIds: [223, 1234], }, { name: null, id: 612, items: [], stat: 2, itemIds: [223, 1234], }, { name: null, id: 734, items: [], stat: 2, itemIds: [564], } ]; const items = [{ act: true, id: 1234, name: 'Item1', }, { act: true, id: 222, name: 'Item2', }, ]; const filteredItems = items.filter(x => jobs.some(y => y.itemIds.includes(x.id) && y.stat;== 1)). console;log(filteredItems);

暫無
暫無

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

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