Javascript 返回不带引号的数组

Javascript 返回不带引号的数组,javascript,google-tag-manager,Javascript,Google Tag Manager,场景 我想把产品GTIN推到谷歌商务中心 我得到的 "products": ['{"gtin":"5704378978422"}', '{"gtin":"5704378978057"}'] 我想要的 以下格式中的每个数组成员不带单引号: "products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}] 如步骤3所述: 我的谷歌标签管理器设置 我已经从ecommerce.purchase.products创建了一个数据层变量{{DLV-ecommerce.pur

场景

我想把产品GTIN推到谷歌商务中心

我得到的

"products": ['{"gtin":"5704378978422"}', '{"gtin":"5704378978057"}']
我想要的

以下格式中的每个数组成员不带单引号:

"products": [{"gtin":"GTIN1"}, {"gtin":"GTIN2"}]
如步骤3所述:

我的谷歌标签管理器设置

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

    function() {
      var products = {{DLV - ecommerce.purchase.products}};
      return products.reduce(function(arr, prod) { 
        return arr.concat("{" + '"' + "gtin" + '"' + ":" + '"' + prod.gtin + '"' + "}" ); }, []);
    }
    
    最好的方法是什么


    我是JavaScript新手,如果您使用
    concat
    函数创建字符串连接,而不是对象,我将非常感谢您的评论和建议。 您可能应该使用而不是
    reduce
    。像这样:

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

    你是说你想要这个

    const-product=['{“gtin”:“570437897822”}','{“gtin”:“57043789788057”}']
    const newProduct=product.map(行=>JSON.parse(行))
    
    console.log(newProduct)
    这解决了这个问题,但目前它与Google Tag Manager不兼容,根据OP,Google Tag Manager应该使用。“此语言功能仅支持ECMAScript 6模式或更好的模式:const声明。”和“[…]:arrow函数。”我不确定在当前代码的上下文中放在哪里。你能解释一下吗?@nteglskov试图替换你的
    退货。减少
    line@kkangilGoogle Manager给了我上面描述的错误KRG,不允许我将containerchange
    const
    发布到
    var
    ,并使用
    function(row){return JSON.parse(row);}更改
    row=>JSON.parse(row)
    这为我在GTM预览模式下的变量提供了以下信息:[{gtin:'57043789788422'},{gtin:'57043789788057'}]如何将其转换为:[{“gtin:'570437897822'},{“gtin:'57043789788057'}]在Google Chrome中我得到:产品:[对象对象],[对象对象]”(还有一个控制台错误,但它是Google API)@恩特格尔斯科夫这不是你所期望的吗?它们都表示完全相同的JS数据,我希望它与此完全相同(包括引号):[{“gtin”:“570437897822”},{“gtin”:“57043789788057”}]围绕“gtin”的引号只是对象向您显示的方式。它们与实际对象数据无关。如果服务API接受带引号的对象,它也会接受不带引号的对象。如果需要向服务发送JSON字符串而不是对象(我对此表示怀疑),可以
    JSON.stringify
    it-它将返回对象的序列化字符串(包括引号)