Как я выполняю цикл for внутри массива, а затем добавляю его в DataLayer.push

Я получил данные идентификаторов с веб-страницы как пользовательскую переменную 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;

}

и эта функция повторно запускает все идентификаторы на странице, это хорошо.

Но теперь мне нужно отправить эти идентификаторы в Google через Диспетчер тегов,

Я ищу, как я могу зацикливаться внутри этого возвращаемого массива и помещать значения из Array в 'id' и отправлять их в Google, конечный результат должен быть таким:

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

Спасибо

1 ответ

Вы можете создать объект в массиве с помощью оператора return, а затем добавить к secend return push, например

       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
        });
}