如何使用 Google 标签管理器中的 Javascript 删除未定义的数组

How to remove undefined array using Javascript in 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

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

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

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