在javascript中我有以下内容:
var inf = id + '|' + city ;
如果id或city为null,则inf为null。
如果id或city为null,是否有空白的话,是否有任何流畅的说法。
我知道在c#中你可以做到以下几点:
var inf = (id ?? "") + (city ?? "");
javascript中的任何类似方法?
答案 0 :(得分:20)
怎么样:
var inf = [id, city].join('|');
编辑: 您可以在加入之前删除“空白”部分,这样,如果id和city中只有一个为null,则inf将只包含该部分,如果两者都为null,则inf为空。
var inf = _([id, city]).compact().join('|'); // underscore.js
var inf = [id, city].compact().join('|'); // sugar.js
var inf = [id, city].filter(function(str) { return str; }).join('|'); // without helpers
答案 1 :(得分:12)
总远射,但试试这个:
var inf = (id || "") + "|" + (city || "");
答案 2 :(得分:4)
var inf = (id == null ? '' : id) + '|' + (city == null ? '' : city)
答案 3 :(得分:0)
var inf = (id && city) ? (id+"|"+city) : "";
答案 4 :(得分:0)
等同于c#var inf = (id ?? "") + (city ?? "");
(如果id
和city
可以为空)
var inf = (id || '') + (city || '');
这被称为“Short-Circuit Evaluation”。可空性在javascript中不是问题(在js中所有变量都可以为空),但必须分配id
和city
(但不需要像var id, city
中那样的值)。< / p>
答案 5 :(得分:0)
if (id != ""){
inf = id;
if (city != ""){ inf += " | " + city ;}
}
else
inf= city;
答案 6 :(得分:0)
function nullToStr(str) {
return !str || 0 === str.length ? '' : str;
}
用法:
console.log(nullToStr(null);
function nullToStr(str) {
return !str || 0 === str.length ? '' : str;
}
console.log(`The value which was null = ${nullToStr(null)}`);
console.log(`The value which was null = ${nullToStr(undefined)}`);
console.log(`The value which was null = ${nullToStr('')}`);
console.log(`The value which was null = ${nullToStr('asdasd')}`);
我认为这会有所帮助,并且易于使用。显然,它基于我在此线程中找到的其他答案。