Javascript 在GTM中有没有一种方法可以在循环中使用查找列表?

Javascript 在GTM中有没有一种方法可以在循环中使用查找列表?,javascript,google-tag-manager,Javascript,Google Tag Manager,我有一个addtocart事件,它将购物车发送到数据层。购物车项目包括sku、数量和价格。在GTM中,我需要将sku转换为产品url和图像url 我希望使用查找列表,但我不确定这是否可能,如果可能,输入变量是什么?我唯一的选择是创建一个javascript函数来实现这一点,还是我可以以某种方式利用GTM变量 [{ sku: "SU-LG", quantity: 1, price: 100.00}, { sku: "RS-SM", quantity: 1,

我有一个addtocart事件,它将购物车发送到数据层。购物车项目包括sku、数量和价格。在GTM中,我需要将sku转换为产品url和图像url

我希望使用查找列表,但我不确定这是否可能,如果可能,输入变量是什么?我唯一的选择是创建一个javascript函数来实现这一点,还是我可以以某种方式利用GTM变量

[{ 
   sku: "SU-LG",
   quantity: 1,
   price: 100.00},
 { 
   sku: "RS-SM",
   quantity: 1,
   price: 50.00}]



这可能最好使用函数来完成,因为查找表将在dataLayer.push上输出一个变量,而不是数组中每个SKU的变量

您可以使用保存在GTM变量中的JSON,然后在函数中引用GTM变量:


var array = [
 { 
   sku: "SU-LG",
   quantity: 1,
   price: 100.00
 },
 { 
   sku: "RS-SM",
   quantity: 1,
   price: 50.00
 }
]

var gtmJsonProduct = {
    "SU-LG": "su-lg-product.png",
    "RS-SM": "rs-sm-product.png"
};

var gtmJsonImage = {
    "SU-LG": "su-lg-image.png",
    "RS-SM": "rs-sm-image.png"
};

// Set these as a GTM variable instead?
// var gtmJsonProduct = {{gtmJsonProduct}};
// var gtmJsonImage = {{gtmJsonImage}};

for (var i = 0; i < array.length; i++) {
  var sku = array[i]['sku'];
  var productUrl = gtmJsonProduct[sku];
  var imageUrl = gtmJsonImage[sku];
  console.log(`product url for ${sku} = ${productUrl}`);
  console.log(`image url for ${sku} = ${imageUrl}`);
}