返回不带引号的数组

时间:2019-04-24 07:33:20

标签: javascript google-tag-manager

场景

我想将产品信息推送到Google Merchant Center。

我要得到的东西

"products": ['{"gtin":"5704378978422"}', '{"gtin":"5704378978057"}']

我想要得到的东西

每个数组成员的单引号都不采用以下格式:

"products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}]

如此处第3步所述:https://support.google.com/merchants/answer/7519329

我的Google跟踪代码管理器设置

  1. 我从 ecommerce.purchase.products
  2. 创建了一个数据层变量{{DLV-ecommerce.purchase.products}}
  3. 我用以下代码创建了一个自定义Javascript变量:

代码:

function() {
  var products = {{DLV - ecommerce.purchase.products}};
  return products.reduce(function(arr, prod) { 
    return arr.concat("{" + '"' + "gtin" + '"' + ":" + '"' + prod.gtin + '"' + "}" ); }, []);
}

什么是最好的方法

我是JavaScript的新手,非常感谢您提出的任何意见和建议

2 个答案:

答案 0 :(得分:1)

您是说要这个吗?

const product = ['{"gtin":"5704378978422"}', '{"gtin":"5704378978057"}']
const newProduct = product.map(row => JSON.parse(row))
console.log(newProduct)

答案 1 :(得分:0)

通过使用concat函数,您正在创建字符串连接,而不是对象。 您可能应该使用map而不是reduce。像这样:

function() {
  var products = {{DLV - ecommerce.purchase.products}};
  return products.map(function(prod) { 
    return {"gtin": prod.gtin};
  });
}