如何使用 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}}'
})
`
您可能会检查变量是否已定义,如果是,则将其包含在推送中,否则不要包含它:
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}}'
})
}
您也可以对其他变量采用相同的方法。
下面的代码正在生成 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}}'
})
`
您可能会检查变量是否已定义,如果是,则将其包含在推送中,否则不要包含它:
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}}'
})
}
您也可以对其他变量采用相同的方法。