我想填充一个嵌套数组。
第一个数组option_array
就是这样创建的
var option_array =[];
if(!option_array.includes(row.option.option_id))
{
option_array .push({
option_id:row.option.option_id,
option_name:row.option.option_name,
max:row.option.max,
min:row.option.min,
value:row.option.value,
price:row.option.price
})
}
现在,我正在创建另一个数组 option_group
var option_group=[];
if(!option_group.includes(row.option_group_id))
{
option_group.push({
option_group_id:row.option_group_id,
option_group_name:row.option_group_name,
max:row.max,
min:row.min,
option:option_array
})
}
我想修改option_group
,而在当前option:option_array
等于row.option_group_id
的情况下,它将仅添加option_group.option_group.option_group_id
答案 0 :(得分:1)
.includes
检查数组是否包含某个项目。由于您具有对象数组,因此无法检查数组是否包含row.option_group_id
。您可以改用find
。从数组中使用row.option_group_id
获取对象。如果存在,请对其进行更新。否则,向数组添加一个新对象
const found = option_group.find(a => a.option_group_id == row.option_group_id)
if (found) {
found.option = row.option_array; // update the found object
} else {
option_group.push({
option_group_id: row.option_group_id,
option_group_name: row.option_group_name,
....
})
}