在 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);
我想知道在 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);