返回一个包含产品名称的对象数组



我正在为谷歌标签管理器工作的javascript代码片段,我必须显示如下所示的输出。

[{"product1":"Protein Corn Muffin"},{"product2":"Salted Caramel Super Smoothie"},{"product3":"Pop Corn"},{"product4":"Fruit Pops!"}]

附加datalayer。

dataLayer = {
products: [
{
name: "Protein Corn Muffin",
id: "SHOP - US - 6032011P",
price: "5.95",
quantity: 1,
},
{
name: "Salted Caramel Super Smoothie",
id: "SHOP - US - 6021050P",
price: "7.95",
quantity: 3,
},
{
name: "Pop Corn",
id: "SHOP - US - 4117050P",
price: "8.95",
quantity: 2,
},
{
name: "Fruit Pops!",
id: "SHOP - US - 41441109P",
price: "9.99",
quantity: 1,
},
],
};
Can anyone guide me.

另一个传统的解决方案:

var prods=[];
for(var i=0;i<dataLayer.products.length;i++){
prods.push({['product'+(i+1)]: dataLayer.products[i].name});
}

工作代码

var dataLayer = {
products: [{
name: "Protein Corn Muffin",
id: "SHOP - US - 6032011P",
price: "5.95",
quantity: 1,
},
{
name: "Salted Caramel Super Smoothie",
id: "SHOP - US - 6021050P",
price: "7.95",
quantity: 3,
},
{
name: "Pop Corn",
id: "SHOP - US - 4117050P",
price: "8.95",
quantity: 2,
},
{
name: "Fruit Pops!",
id: "SHOP - US - 41441109P",
price: "9.99",
quantity: 1,
},
],
};

var prods = [];
for (var i = 0; i < dataLayer.products.length; i++) {
prods.push({
['product' + (i + 1)]: dataLayer.products[i].name
});
}
console.log(prods)

解决了你的问题,但下次请多做些调查。

datalayer.products.map( (p, i) => ({[`product${i+1}`]: p.name }))

最新更新