字符串中的javascript null值

Nat*_*Pet 6 javascript

在javascript中我有以下内容:

var inf = id + '|' + city ;
Run Code Online (Sandbox Code Playgroud)

如果id或city为null,则inf为null.

是否有任何光滑的方式说如果id或city为null则为空.

我知道在c#中你可以做到以下几点:

var inf = (id ?? "") + (city ?? "");
Run Code Online (Sandbox Code Playgroud)

在javascript中有任何类似的方法吗?

psy*_*yho 20

怎么样:

var inf = [id, city].join('|');
Run Code Online (Sandbox Code Playgroud)

编辑:你可以在加入之前删除"空白"部分,这样如果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
Run Code Online (Sandbox Code Playgroud)

  • 哇,好的. (2认同)

Ell*_*lle 13

总远投,但试试这个:

var inf = (id || "") + "|" + (city || "");
Run Code Online (Sandbox Code Playgroud)

  • @Nate:它是一个'或'运算符,这意味着:`var inf =(如果id未定义,则为id,否则使用"")+"|" +(城市如果城市没有未定义,否则使用"")` (3认同)
  • 我建议添加括号:`var inf =(id ||"")+"|" +(city ||"");` (2认同)
  • @nickf它*确实*有所作为.试试吧. (2认同)

Phi*_*ipp 5

var inf = (id == null ? '' : id) + '|' + (city == null ? '' : city)
Run Code Online (Sandbox Code Playgroud)

  • 我不知道为什么这被接受而不是 pysho 的回答。 (3认同)