Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问数据层中的阵列并发送到自定义维度_Javascript_Google Analytics_Google Tag Manager - Fatal编程技术网

Javascript 访问数据层中的阵列并发送到自定义维度

Javascript 访问数据层中的阵列并发送到自定义维度,javascript,google-analytics,google-tag-manager,Javascript,Google Analytics,Google Tag Manager,我确实有一个名为“购买”的事件,其中包含产品和子类别参数。下面是如何在数据层中设置事件。请记住,产品和子类别参数的值总是在变化。有时索引将有5个项目,有时只有1个 dataLayer.push({ event: 'Purchase', products: [ {product: 'abc-111-aaaaa-1198', subCategory: 'Dresses'}, {product: 'def-222-aaaaa-0002', subCategory: 'Ski

我确实有一个名为“购买”的事件,其中包含产品和子类别参数。下面是如何在数据层中设置事件。请记住,产品和子类别参数的值总是在变化。有时索引将有5个项目,有时只有1个

  dataLayer.push({
  event: 'Purchase',
  products: [
    {product: 'abc-111-aaaaa-1198', subCategory: 'Dresses'},
    {product: 'def-222-aaaaa-0002', subCategory: 'Skirts'},
    {product: 'ghz-333-aaaaa-0002', subCategory: 'Jackets'}
  ],
  gtm.uniqueEventId: 9999
})
我希望能够将产品和子类别参数作为单个值连接到单个自定义维度中。方法可能是创建一个自定义Javascript变量,因为我不熟悉JS,所以无法生成以下输出

最终输出应为:

"'abc-111-aaaaa-1198|Dresses','def-222-aaaaa-0002|Skirts', 'ghz-333-aaaaa-0002|Jackets'"
如果您的JS代码能够产生所需的输出,那就太好了

看一看

我还举了一个例子

const products = [
    {product: 'abc-111-aaaaa-1198', subCategory: 'Dresses'},
    {product: 'def-222-aaaaa-0002', subCategory: 'Skirts'},
    {product: 'ghz-333-aaaaa-0002', subCategory: 'Jackets'}
  ]
  
  const result = products.flatMap(x => x.product + "|" + x.subCategory);
  
  console.log(result);

嘿,Rafel,确实你的代码给出了正确的结果。但是,产品和子类别的值总是在变化。有没有一个不是硬编码的解决方案?钥匙总是在变?这是一个不同的问题。是的,事实上,我已经为这个问题添加了细节。抱歉,不明确。只要键、产品和子类别相同,代码就可以用于任意长度的数组。const result=products.flatMap(x=>x.product+“|”+x.subCategory)我浏览了GTM文档,似乎ES6不受支持-箭头函数也不受支持。所以我们应该通过定义一个函数并返回一个值来得到我们想要的,就像这样。