我正在使用以下内容进行事件跟踪:
var dataTrack = e.split(','); // split by comma
if (dataTrack !== undefined) {
var action = dataTrack[0];
var values = {};
values[dataTrack[1]] = dataTrack[2];
mpq.track(action, values);
}
如何修改dataTrack [0],dataTrack [1],dataTrack [2],如果任何dataTrack变量为空,它将不会中断? 1& 2是可选的......
由于
答案 0 :(得分:2)
JavaScript中常见的习惯用法是提供默认值,如下所示:
// default to the empty string
var dataTrack0 = dataTrack[0] || '',
dataTrack1 = dataTrack[1] || '',
dataTrack2 = dataTrack[2] || '';
...虽然我认为更好的解决方案,在这种情况下,可能是检查数组的length
。
答案 1 :(得分:0)
您可能希望将length property用于数组。
var dataTrack = e.split(','); // split by comma
if (dataTrack !== undefined) {
var action = dataTrack[0];
var values = {};
if(dataTrack.length > 2) {
values[dataTrack[1]] = dataTrack[2];
}
mpq.track(action, values);
}
您可以添加额外的验证来检查dataTrack [1]的长度是否为> 0如果有人可能传递“value1,,value3”。
答案 2 :(得分:0)
难道你不能检查以确保它们不是空的吗?如果三元运算符为空,也可以使用三元运算符(即action == undefined?“Default”:datatrack [0];)。
答案 3 :(得分:0)
替换
values[dataTrack[1]] = dataTrack[2];
与
if(dataTrack.length > 2){
values[dataTrack[1]] = dataTrack[2];
}