从两个数组中删除相等的对象

我的 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#filterArray#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);

以上是从两个数组中删除相等的对象的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>