0

我有两个数组对象arr1arr2

arr1属性qty应小于相同的库存 arr1 和数量 arr2 的总和name

如何根据javascript中的属性和同名比较返回数组对象

function getArray(arr1,arr2)
{
 return arr1.filter(i=> arr2.map(e=>i. qty < (e.quantity+i.stock)))
}
var arr1=[
  {id:1, name: "sample1", qty:2, stock: 0},
  {id:2, name: "sample2", qty:3, stock: 2},
  {id:3, name: "sample2", qty:4, stock: 1}
]

var arr2=[
  {idx:1, name:"sample1", quantity:1},
  {idx:2, name:"sample2", quantity:2},
  {idx:3, name:"sample3", quantity:1}
]

预期输出,

[{id:1, name: "sample1", qty:2, stock: 0},
  {id:3, name: "sample2", qty:4, stock: 1}]
4

1 回答 1

0

尝试这个:

arr1.filter(item1=>item1.stock<(arr2.filter(item2=>item2.name==item1.name))[0].quantity)

只要 array2 具有唯一的名称,它就可以工作。

于 2020-07-08T11:49:56.563 回答