Javascript推送到多维数组中的元素

use*_*843 1 javascript multidimensional-array

我需要生成一个格式为:

products : 
[
    {
        "product_id": 32,
        "quantity": 2
    },
    {
        "product_id": 33,
        "quantity": 2,
        "product_options": 
        [
            {
                "id": 87,
                "value": 10
            }
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法完成product_id和数量:

productID = 32;
prodQuantity = 2;
var row2 = {};
row2.product_id = productID;
row2.quantity = prodQuantity;
product.push(row2);

productID = 33;
prodQuantity = 2;
var row2 = {};
row2.product_id = productID;
row2.quantity = prodQuantity;
product.push(row2);
Run Code Online (Sandbox Code Playgroud)

如何使用id和value添加元素product_options.

我尝试过各种变化:

var row3 = {};
row3.id = 87;
row3.value = 10;    
cartArray['product_options'].push(row3);
Run Code Online (Sandbox Code Playgroud)

我用它管理它:

var prodQuantity = app.getValue('popupDropdown').value;
var cartArray = [];
var optionID = app.getValue('popupDropdown4').value;
var row2 = {};
var row3 = {};
var row4 = {};
var tempArray = [];
row2.product_id = productID;
row2.quantity = prodQuantity;
cartArray.push(row2);
row3.id = optionID;
row3.value = Rule4Value;
tempArray.push(row3);
row4.product_options = tempArray;
cartArray.push(row4);
Run Code Online (Sandbox Code Playgroud)

但我看到下面的答案要简单得多.

Sim*_*leJ 5

您可以设置product_optionsrow2是这样的:

row2.product_options = [
    {
        id: 87,
        value: 10
    }
];
Run Code Online (Sandbox Code Playgroud)

解释:

product_options是关键row2.它的值是一个带有单个元素的数组,它是一个带有键id和的对象value.