我想输出var1
,var2
和var3
的值以及我的代码以检查是否存在1个变量:
if (var1){
return value = "some value -";
} else
return '';
}
但是如果有一个或多个需要检查的变量如var1
存在且var2
不存在等等,
if (var1 && !var2 && var3){
//do something
}else if (var1 && !var2 && !var3){
//do something
}else
return '';
我做错了什么?基本上我想要的只是在字符串上添加一个破折号,这样我就可以得到some value - some value
的输出,如果变量是空的,则不能获得some value -
。
答案 0 :(得分:2)
将值放在数组中并使用.join
。
var values = [];
if (value1) {
values.push(value1);
}
if (value2) {
values.push(value2);
}
if (value3) {
values.push(value3);
}
return values.join(" - ");
这很容易扩展到任意数量的变量。虽然也许它们应该只是在数组中开始,而不是分开变量。您可以在加入前使用values.filter()
过滤掉空值。
答案 1 :(得分:1)
var var1;
var var2 = "1";
var var3 = "11";
var start = false;
var text = "";
if (var1) {
text += var1;
start = true;
}
if (var2) {
if (start)
text += " - ";
text += var2;
start = true;
}
if (var3) {
if (start)
text += " - ";
text += var3;
}
console.log(text);