2016-09-22 2 views
0

Есть ли способ удалить объект в datalayer? Как видно на картинке, есть два объекта google_tag_params. Мне просто нужен он. Первое нажатие - onload, затем второе нажатие на dataLayer в js-вызове. Мне нужно удалить толкающей один первый до нажатия второй, так что нет дубликата «google_tag_params» в слое данныхЕсть ли способ удалить объект в datalayer?

enter image description here

dataLayer.push(
      { "google_tag_params":google_tag_params, 
       "ecomm_prodid":document.getElementById('prodid').value, 
       "ecomm_pagetype": document.getElementById('pageType').value, 
       "ecomm_totalvalue": price.toFixed(2), 
      }); 
+0

Вы можете просто сделать ' dataLayer.pop'. В конце это просто массив на 'окне'. – Rajesh

+0

Это удалит последний объект. Не объект, который нужно удалить. – Clem

+0

Точка, это просто еще один массив. Вы можете перебрать его и удалить с помощью 'array.splice()' – Rajesh

ответ

1

Использование массива Filter

//es6 
dataLayer = dataLayer.filter(x=>!x.google_tag_params);//removes any object 
      // which has a key google_tag_params, guessing that its value won't be falsy 
dataLayer.push(newGoogleTagParam); 

//es5 
dataLayer = dataLayer.filter(function (x) { 
    return !x.google_tag_params; 
}); 
dataLayer.push(newGoogleParam); 

 Смежные вопросы

  • Нет связанных вопросов^_^