2016-09-22 7 views
0

データレイヤー内のオブジェクトを削除する方法はありますか?画像のように、2つの 'google_tag_params'オブジェクトがあります。私はただ一つ必要です。最初のプッシュはonloadで、次にjsコールでdataLayerを2回押します。私は、重複がないように、第2のプッシュする前に最初にプッシュ1を削除する必要があり、データ層に「google_tag_params」データレイヤー内のオブジェクトを削除する方法はありますか?

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'。最後には 'window'の配列です。 – 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); 
関連する問題