我已经有了这样的数组。
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
}]
});
}
答案 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;动态