前端学习笔记之 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));

推荐阅读更多精彩内容

  • JS基本数据类型及变量声明在js中有三种声明变量的方式:var let const,let var const的区...
    web佳阅读 216评论 1 7
  • *node下用express框架,实现一个简单的mvc *构建工具:gulp / babel / webpack ...
    韩辣yaya_前端程序媛阅读 275评论 0 1
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 2,823评论 0 8
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 1,319评论 0 11
  • js简介 Js是一种基于事件和对象驱动的解释性、松散性的语言。 一切皆对象 javascript 布兰登艾奇 ...
    塔库纳玛哈哈阅读 117评论 0 2