在javascript中,我有以下内容:
var inf = id + '|' + city ;
如果 id 或 city 为 null,则 inf 将为 null。
如果 id 或 city 为空,是否有任何巧妙的方式表示然后为空。
我知道在 c# 中您可以执行以下操作:
var inf = (id ?? "") + (city ?? "");
javascript中有类似的方法吗?
在javascript中,我有以下内容:
var inf = id + '|' + city ;
如果 id 或 city 为 null,则 inf 将为 null。
如果 id 或 city 为空,是否有任何巧妙的方式表示然后为空。
我知道在 c# 中您可以执行以下操作:
var inf = (id ?? "") + (city ?? "");
javascript中有类似的方法吗?
怎么样:
var inf = [id, city].join('|');
编辑:您可以在加入之前删除“空白”部分,这样如果 id 和 city 中只有一个为空,则 inf 将只包含该部分,如果两者都为空,则 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
总的远射,但试试这个:
var inf = (id || "") + "|" + (city || "");
var inf = (id == null ? '' : id) + '|' + (city == null ? '' : city)
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')}`);
我认为它会有所帮助并且更容易使用。显然,它基于我在这个线程中找到的其他答案。
var inf = (id && city) ? (id+"|"+city) : "";
等效于 c# var inf = (id ?? "") + (city ?? "");
(如果id
和city
可以为空)是
var inf = (id || '') + (city || '');
这被称为“短路评估”。可空性在 javascript 中不是问题(在 js 中,所有变量都可以为空),但id
必须city
分配(但不需要值,如var id, city
)。
if (id != ""){
inf = id;
if (city != ""){ inf += " | " + city ;}
}
else
inf= city;