【发布时间】:2019-04-09 07:33:06
【问题描述】:
我目前正在使用一种方法来尝试过滤一些数组,该方法几乎可以工作,但我似乎无法访问确切的值 -
我进行调用并将每个返回的数组添加到一个更大的数组中,然后这些数组将被分配一个 productId 可能还有一些数据,我正在使用这个附加 productIds:
data.push({'productId': product.id});
不幸的是,它向数组中添加了一个新对象,这意味着我下面的函数不起作用,除非 productId 在每个数组的第一个对象中:
let matchedArray = data.flatMap(arr => arr.filter(obj => obj.productId == id))
我需要做的是将数组过滤到与 productId 和 ID 匹配的子数组,并且该子数组还包含一些数据字段,例如“名称”-因此它会检查名称是否为空。
数据集看起来像这样(子数组的数组)
id = 12345
data = [[],[],[],[],[],[],[],[],[{"id":"123","name":"africa soul
2019","startDate":null,"endDate":null,"country":null,"city":null,"type":"Ev
ent","members":null},{"productId":"12345"}],[],[],[],[],[],[],
[],[],[],[],[]]
正如您所见,productId 已附加到数组中,但现在不能使用我的过滤方法,我需要过滤具有匹配 ID 的正确数组,并且至少其中一个字段也存在。我要么需要更改 productId 手动附加的方式,要么更改过滤方法?
如果你能帮忙,非常感谢
【问题讨论】:
-
请在问题中发布
data的内容 -
我有,数据数组在那里 data = [[],[],[],[...等
-
为什么把空数组压入数据?
-
预期输出是什么?
-
预期的输出是包含数据的数组 - 我得到每个空的数组来安慰
标签: javascript arrays