以下代码生成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}}'
})
`
答案 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}}'
})
}
您也可以对其他变量采用相同的方法。