簡體   English   中英

Lodash。 如何過濾對象的對象?

[英]Lodash. How filter object of objects?

有物品的購物車對象。

carts: {
                0: {
                    id:1,
                    items:{
                        0:{id:100},
                        1:{id:101},
                        2:{id:10}
                    }
                },
                1: {
                    id:2,
                    items:{
                        0:{id:34},
                        1:{id:15},
                        2:{id:46}
                    }
                },
            }

我也有簡單的數組,其ID為[101,46]的項目要從第一個數組中刪除。

如何通過lodash過濾我的對象?

Object.values(carts).forEach(({items}) => {
  for(var i in items)
    if(ids.includes(items[i].id)) delete items[i];
});

試試吧

與Jonas提出的解決方案類似的解決方案,但具有普通的ES5,Lodash且無突變:

var carts = {
    // ...
};

function getFilteredCarts(carts, idsToRemove) {
    return _.mapValues(carts, function (value) {
        return _.omitBy(value.items, function (item) {
            return _.includes(idsToRemove, item.id);
        });
    });
}

getFilteredCarts(carts, [101, 46]);

試試吧

暫無
暫無

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

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