使用分隔符连接字符串,忽略空字符串

0 javascript

我想形成一个变量.

如果它不是null或为空或undefined我不想将@符号附加到它:

var T1  = 'Popcorn'
var T2  = 'Icecreams'
var T3  = '';
var T4  = '';

if(T1!=''||T2!=''||T3!=''||T4!='')

reqstr = T1+'@'+T2+'@'+T3+'@'+T4;

alert(reqstr);
Run Code Online (Sandbox Code Playgroud)

现在输出是:

爆米花@冰淇淋@@

如果变量为空,我不想追加@,这意味着我只需要:

爆米花@冰淇淋

小提琴.

198*_*983 6

不是最清楚的问题.试试这个:

[T1,T2,T3,T4].filter(Boolean).join('@');
Run Code Online (Sandbox Code Playgroud)

如果你想在你的变量中允许数字,你需要做更多的工作:

[T1,T2,T3,T4].filter(function(x){
    return typeof x === 'number' || x;
}).join('@');
Run Code Online (Sandbox Code Playgroud)

并允许数字,但过滤掉NaN:

[T1,T2,T3,T4].filter(function(x){
    return x === 0 || x;
}).join('@');
Run Code Online (Sandbox Code Playgroud)

等等,取决于规格.