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

RuL*_*Lee 1 javascript arrays object javascript-objects reactjs

我的 ReactJs 应用程序中存在以下问题。假设我有两个这样的数组:

var cart = [
   {id: 1, name: "item1"}, 
   {id: 2, name: "item2"}, 
];
Run Code Online (Sandbox Code Playgroud)
var productsArr = [
   {proId: 1, category: 'cat1'}, 
   {proId: 5, category: 'cat7'}, 
];
Run Code Online (Sandbox Code Playgroud)

是否可以比较这两个数组并在 productsArr 中找到任何对象,其中购物车的idquals productsArr'sproId并仅从 productsArr 中删除该对象?

(如果是这样,正如我在这个例子中所解释的,productsArr[0]应该被删除。)

提前致谢。

hev*_*ev1 7

您可以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);
Run Code Online (Sandbox Code Playgroud)