从两个数组中删除相等的对象
我的 ReactJs 应用程序中存在以下问题。假设我有两个这样的数组:
var cart = [
{id: 1, name: "item1"},
{id: 2, name: "item2"},
];
var productsArr = [
{proId: 1, category: 'cat1'},
{proId: 5, category: 'cat7'},
];
是否可以比较这两个数组并在 productsArr 中找到任何对象,其中购物车的idquals productsArr'sproId并仅从 productsArr 中删除该对象?
(如果是这样,正如我在这个例子中所解释的,productsArr[0]应该被删除。)
提前致谢。
回答
您可以Array#filter与Array#some.
var cart = [
{id: 1, name: "item1"},
{id: 2, name: "item2"},
];
var productsArr = [
{proId: 1, category: 'cat1'},
{proId: 5, category: 'cat7'},
];
productsArr = productsArr.filter(({proId})=>!cart.some(({id})=>proId === id));
console.log(productsArr);