首页 > 解决方案 > 从两个数组中删除相等的对象

问题描述

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

var cart = [
   {id: 1, name: "item1"}, 
   {id: 2, name: "item2"}, 
];
var productsArr = [
   {proId: 1, category: 'cat1'}, 
   {proId: 5, category: 'cat7'}, 
];

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

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

提前致谢。

标签: javascriptarraysreactjsobjectjavascript-objects

解决方案


You can use Array#filter in conjunction with 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);


推荐阅读