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