将数组添加到某个数组索引

时间:2019-06-04 08:22:20

标签: javascript arrays node.js

我想填充一个嵌套数组。

第一个数组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

1 个答案:

答案 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,
    ....
  })
}