javascript - 返回包含产品名称的对象数组
问题描述
我正在为 Google 标签管理器开发一个 javascript 片段,我必须在其中显示如下所示的输出。
[{"product1":"Protein Corn Muffin"},{"product2":"Salted Caramel Super Smoothie"},{"product3":"Pop Corn"},{"product4":"Fruit Pops!"}]
附加数据层。
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)
推荐阅读
- javascript - 使用 setInterval() 函数制作番茄钟
- html - Angular - 添加类的 CSS 属性未显示
- javascript - 如何从对象Javascript数组中检索花费的最高时间
- angular - 日期选择在 Firefox 中不适用于角度材料日期选择器
- android - 由于 SharedElementCallback,Google 登录失败
- python - 使用余数模运算符花费的 Python 时间
- laravel - 浏览器(黄昏)测试输入的 id 名称中的方括号
- python - Python - 检查字符串中嵌入了多少个字符串实例
- angular - 参数类型 MouseEvent 不能分配给参数类型 MouseEvent
- eclipse - 自 eclipse 2018-12 更新以来的 Acceleo Builder 错误