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

在Javascript中生成多个JSON对象数组,javascript,arrays,json,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':

我已经有了这样一个数组

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
}]
});
}
var length=dataLayer[0]['transactionProducts'].length;
var len=dataLayer.length;
var gtmDataLayer=[];
var gtmDataLayer=[];
对于(i=0;i这应该可以做到

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
        }
    );
}
var length=数据层[0][“transactionProducts”]。长度;
var len=dataLayer.length;
var gtmDataLayer=[{“transactionProducts”:[]}];

对于(i=0;i您的代码工作,您将得到以下结构作为结果:
[{transactionProducts:[{category:“GLD”etc.}]},{transactionProducts:[{category:“FMT”etc.}]}]
@falsecrypt-是的,代码确实有效,但代码不适用于第二个对象数组,它会在第一个对象数组生成后停止。不过,多亏了Shadab的回答,这一点才得以解决(见下文).谢谢你的评论。-非常感谢!非常有魅力。当然,我会想出一种动态自动推送的方法。非常感谢!