【问题标题】:how to get array of object based on condition in javascript如何根据javascript中的条件获取对象数组
【发布时间】:2020-10-28 19:33:29
【问题描述】:

我有两个数组对象arr1 和arr2,

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

如何在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}]

【问题讨论】:

  • 请edit您的问题表明您已经完成了哪些研究以及您为自己解决问题所做的尝试。
  • id 和 idx 是相同的还是这是一个类型-o? qty 和 quantity 相同。 id(或idx)2 发生了什么?
  • @tigeer id 和 idx 不同,基于同名比较,

标签: javascript arrays object nested-object


【解决方案1】:

试试这个:

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

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

【讨论】:

    猜你喜欢
    • 2020-12-04
    • 1970-01-01
    • 2022-01-02
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多