在 javascript 中加入空字符串以外的字符串

Joining strings except empty ones in javascript

我想知道在 javascript 中加入几个字符串的最佳方法是什么,除非它们是空的。

假设我们有

let s1 = 'X = 1';
let s2 = '';
let s3 = 'Z = 3';

我的最终结果需要是“X = 1,Z = 3”

let str = [s1,s2,s3].join(',')  // will have extra comma

let str = [s1!??' , ' ,s2!??' , ' ,s3].join(' ')  //is ugly, and will not work

let str = [u1&&',' ,u2&&',',u3].join('')  //close, but no cigar.

但我相信一定有一种优雅的方式来进行此连接!

Whosebug 上的某个人会给我指明正确的方向。

您也可以使用下面的代码实现相同的目的。 Filter Boolean 消除所有 falsey 值,如未定义、空字符串、null 等

  let str = [u1,u2,u3].filter(Boolean).join(',');

您可以使用 .filter(Boolean)(与 .filter(x => x) 相同)删除所有 falsy 值(null、未定义、空字符串等...)

工作演示:

let s1 = 'X = 1';
let s2 = '';
let s3 = 'Z = 3';

let str = [s1,s2,s3].filter(Boolean).join(", ");

console.log(str);