如何剔除数组中的空值(""
, 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
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。