在 JavaScript 中使用分隔符连接非空字符串

使用分隔符连接非空字符串

Join non-Empty Strings with a Separator in JavaScript

要使用分隔符连接非空字符串,请将字符串添加到数组并调用filter()数组上的方法以仅过滤真值,例如
[str1, str2].filter(Boolean).join(',').

filter方法将返回一个不包含空字符串的数组。

索引.js
const str1 = ''; const str2 = 'apple'; let str3; const str4 = 'banana'; const joined = [str1, str2, str3, str4].filter(Boolean).join(','); console.log(joined); // 👉️ "apple,banana"

第一步是将字符串添加到数组中,因此我们可以对其调用
Array.filter
方法。

filter 方法接受一个函数并为数组中的每个元素调用它。

我们将Boolean对象作为函数传递给filter方法,这与执行以下操作相同:

索引.js
const str1 = ''; const str2 = 'apple'; let str3; const str4 = 'banana'; const joined = [str1, str2, str3, str4] .filter(element => Boolean(element)) .join(','); console.log(joined); // 👉️ "apple,banana"
无论哪种方式,如果字符串到布尔值的转换返回,它就会被添加到方法返回的数组中。 truefilter

Boolean对象将所有虚假值转换为false,将所有真值转换为true

JavaScript 中的假值是:false, null, undefined, 0, ""
(空字符串),
NaN(不是数字)。

所有其他值都转换为true,这意味着如果字符串至少包含 1 个字符,Boolean对象会将其转换为true并将其添加到filter方法返回的数组中。

最后一步是使用
Array.join
方法将数组元素连接成一个字符串。

join方法将分隔符作为参数,并根据提供的分隔符将数组元素连接成一个字符串。

这里有些例子。

索引.js
console.log(['a', 'b', 'c'].join('_')); // 👉️ "a_b_c" console.log(['a', 'b', 'c'].join(',')); // 👉️ "a,b,c" console.log(['a', 'b', 'c'].join(' ')); // 👉️ "a b c" console.log(['a', 'b', 'c'].join('')); // 👉️ "abc"

因为数组已经过过滤并且不包含空字符串undefined
null值,所以最终字符串不会有两个相邻的分隔符。