如何剔除数组中的空值(""
, null
, undefined
)?
能够这样实现:
var arr = ['hello', '','world', null,'!'];
arr.filter(str => !!str);
最近看 querystring 源码时看到一段相似的逻辑,参考 querystring 代码更精简的实现上述问题:
var arr = ['hello', '','world', null,'!'];
arr.filter(Boolean);
奇妙利用 Boolean
构造函数的性能:
第一个参数传递的值将转换为布尔值。如果省略或值
0
,-0
,null
,false
,NaN
,undefined
,或空字符串(""
),该对象具备的初始值false
。所有其余值,包含任何对象,空数组([]
)或字符串"false"
,都会创立一个初始值为的对象true
。