我如何在 Array 中执行 'for loop' 然后添加到 DataLayer.push

How I do 'for loop' inside Array then add to DataLayer.push

我已从网页中检索 ID 数据作为自定义 Javascript 变量:

function() {

    var productID = document.querySelectorAll('a[data-productID]');

    var allproductID = Array.prototype.map.call(productID, function(a) {
        return a.getAttribute('data-productID');
    });

    return allproductID;

}

而且这个函数会返回页面中的所有 id,很好。

但现在我需要通过跟踪代码管理器将这些 ID 发送到 google,

我正在寻找的是如何在这些 return 数组中循环并将数组中的值放入 'id' 并将其推送到 Google,最终结果必须像:

<script>
gtag('event','view_item', {
  value: 'somevalue'
  'items': [
    {
      'id': 1234, 
      'google_business_vertical': 'retail'
    },
    {
      'id': 45678, 
      'google_business_vertical': 'retail'
    }
  ]
});
</script>

谢谢

您可以通过 return 语句在数组中创建对象,然后您可以添加到第二个 return 推像

 function() {

var productID = document.querySelectorAll('a[data-productID]');

var allproductID = Array.prototype.map.call(productID, function(a) {
    return  {
              'id':  a.getAttribute('data-productID'), 
              'google_business_vertical': 'retail'
            }
});



return dataLayer.push({
          'event': 'view_items',
          'value': 'somevalue',
          'items' : allproductID
        });
}