如何在Google跟踪代码管理器中使用Javascript删除未定义的数组

时间:2015-09-02 19:16:12

标签: google-tag-manager

以下代码生成dataLayer变量,但有时候" sourceTraffic"变量未定义。我想要它,如果任何变量未定义或为null,它不应该是可见的。

我是JavaScript的新手,在阅读帖子和博客后一直在尝试。下面提到的屏幕截图给出了当前如何可见的想法。

<script>

function cleanArray(actual){
var newArray = new Array();
for(var i = 0; i<actual.length; i++){
if (actual[i]){
newArray.push(actual[i]);
 }
}
 return newArray;
 }
 var temporary = {{sourceTraffic}}
 cleanArray([temporary]);

 <script>

 window.dataLayer = window.dataLayer || []
   dataLayer.push({

     'aNewDLV':'{{1Refferer}};{{Date Time of Browser}}:{{nPageName}}|      {{sourceTraffic}}'

 })

`

http://prntscr.com/8bv67r

1 个答案:

答案 0 :(得分:1)

您可以检查是否定义了变量,如果是,则将其包含在推送中,否则不要包含它:

window.dataLayer = window.dataLayer || [];
if (typeof temporary !== "undefined") {
   dataLayer.push({
      'aNewDLV':'{{1Refferer}};{{Date Time of Browser}}:{{nPageName}}|{{sourceTraffic}}'
   })
} 
else {
   dataLayer.push({
      'aNewDLV':'{{1Refferer}};{{Date Time of Browser}}:{{nPageName}}'
   })
}

您也可以对其他变量采用相同的方法。