如何将Array.join()
函数与条件
例如:
var name = ['','aa','','','bb'];
var s = name.join(', ');
输出为:', aa, , ,'bb',
我想添加一个只显示非空字的条件:"aa, bb"
答案 0 :(得分:5)
您可以使用Array#filter
从数组中删除空元素,然后在过滤后的数组上使用Array#join
。
arr.filter(Boolean).join(', ');
这里,filter
的回调函数是布尔构造函数。这与
// ES5 equivalent
arr.filter(function(el) {
return Boolean(el);
}).join(', ');
由于JavaScript中的空字符串是假的,Boolean('')
将返回false
,并且元素将从数组中跳过。过滤后的非空字符串数组由胶水连接。
var arr = ['', 'aa', '', '', 'bb'];
var s = arr.filter(Boolean).join(', ');
console.log(s);
您还可以使用String#trim
从字符串中删除前导和尾随空格。
arr.filter(x => x.trim()).join(', ');