具有条件的Array.join()

时间:2016-05-27 15:06:48

标签: javascript arrays

如何将Array.join()函数与条件

一起使用

例如:

var name = ['','aa','','','bb'];
var s = name.join(', ');

输出为:', aa, , ,'bb',

我想添加一个只显示非空字的条件:"aa, bb"

1 个答案:

答案 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(', ');