前端学习笔记之 js 中Array.filter(Boolean)

前言

近日在看 30 seconds of code 里面的 compact 方法发现是这么写的const compact = arr => arr.filter(Boolean);,用来移除所有的 ” falsey“ 类型元素(false, null, 0, "", undefined, NaN), 很好奇写了个Boolean 为什么能够过滤falsey类型元素呢,让我们来探索一下。

我们都知道,Boolean 作为一个函数的时候,能够根据元素的真假类型,对应返回 true 或 false。

Boolean(0); // false
Boolean(true); // true
Boolean(3); // true
Boolean(""); // false
Boolean("false"); // true

Array.filter 接受一个函数,因此 const compact = arr => arr.filter(Boolean); 等价于const compact = arr => arr.filter(item => Boolean(item));

推荐阅读更多精彩内容