Javascript 访问数据层中的阵列并发送到自定义维度
我确实有一个名为“购买”的事件,其中包含产品和子类别参数。下面是如何在数据层中设置事件。请记住,产品和子类别参数的值总是在变化。有时索引将有5个项目,有时只有1个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
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不受支持-箭头函数也不受支持。所以我们应该通过定义一个函数并返回一个值来得到我们想要的,就像这样。