使用分隔符连接非空字符串
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"
无论哪种方式,如果字符串到布尔值的转换返回,它就会被添加到方法返回的数组中。
true
filter
该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
值,所以最终字符串不会有两个相邻的分隔符。