在Javascript中生成多个JSON对象数组

时间:2014-12-18 09:10:20

标签: javascript arrays json

我已经有了这样的数组。

var dataLayer = [];
dataLayer = [{
'transactionProducts': [{
'sku': '96710381',
'name': 'QEH',
'category': 'GLD',
'price': '309.00',
'quantity': '3'
},
{
'sku': '96710382',
'name': 'RYP',
'category': 'FMT',
'price': '209.00',
'quantity': '3'
}]
}];

现在,我需要生成另一个数组并包含上述数组中的所有值。这就是我这样做的方式。请在下面找到代码。但只生成第一组值。第二组不会在新数组中生成。感谢关于如何实现这一目标的一些评论!

var length = dataLayer[0]['transactionProducts'].length;
var len = dataLayer.length;
var gtmDataLayer = [];
var gtmDataLayer = [];
for (i=0;i<length;i++) {
var zsku = window.dataLayer[0]['transactionProducts'][i].sku;
var zsku = window.dataLayer[0]['transactionProducts'][i].sku;
var zname = window.dataLayer[0]['transactionProducts'][i].name;
var zcat = window.dataLayer[0]['transactionProducts'][i].category;
var zprice = window.dataLayer[0]['transactionProducts'][i].price;
var zquant = window.dataLayer[0]['transactionProducts'][i].quantity;
window.gtmDataLayer.push({
'transactionProducts': [{
'sku': zsku,
'name': zname,
'category': zcat,
'price': zprice,
'quantity': zquant
}]
});
}

1 个答案:

答案 0 :(得分:0)

这应该这样做。

var length = dataLayer[0]["transactionProducts"].length;
var len = dataLayer.length;
var gtmDataLayer = [{"transactionProducts":[]}];

for (i=0;i<length;i++) {
    var zsku = window.dataLayer[0]["transactionProducts"][i].sku;
    var zname = window.dataLayer[0]["transactionProducts"][i].name;
    var zcat = window.dataLayer[0]["transactionProducts"][i].category;
    var zprice = window.dataLayer[0]["transactionProducts"][i].price;
    var zquant = window.dataLayer[0]["transactionProducts"][i].quantity;

    gtmDataLayer[0]['transactionProducts'].push(
        {
        "sku": zsku,
        "name": zname,
        "category": zcat,
        "price": zprice,
        "quantity": zquant
        }
    );
}

稍后,您也可以尝试自动推送&#34; transactionProducts&#34;动态