【JS】过滤数组中空值——arr.filter(Boolean)

前言:过滤数组中的空值,包括 (undefined、null、“”、0、false、NaN)
Boolean函数可以将一个值转换为布尔值,空值会被转换为false,非空值会被转换为true

方法:

const arr = [1, 2, "", 3, null, undefined, 4, 0, false, NaN];const newArr = arr.filter(Boolean);console.log(newArr); // [1, 2, 3, 4]

注意:该方法对于需要过滤字符串数组中的空值(null undefined ‘’)比较合适,如果数组中有数字,则 0 也会被过滤掉,0的布尔值为false。

如果要保留 0 需要特判:

const arr = [1, 2, "", 3, null, undefined, 4, 0, false, NaN];const newArr = arr.filter(item => {if(item === 0) return true; return Boolean(item)
});console.log(newArr); // [1, 2, 3, 4, 0]

解释

Boolean 作为一个函数的时候,能够根据元素的真假类型,对应返回 true 或 false:
在这里插入图片描述

arr.filter(Boolean)等价于arr.filter(item => Boolean(item))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SQL常用日期函数(一)】

SQL 常用日期函数-基于impala 引擎 当前日期(YYYY-MM-DD) SELECT CURRENT_DATE(); -- 2024-06-30昨天 SELECT CURRENT_DATE(); -- 2024-06-30 SELECT CAST( DAYS_ADD(TO_DATE( CURRENT_DATE() ), -1 ) AS VARCHAR(10) ); -- 2024-06-29 SELECT CAST( …

Linux-页表如何对物理内存进行映射

1.1 页框和页帧 我们知道通过页表可以将虚拟内存映射到对应的物理内存,而操作系统对于物理内存的管理并不是以字节为单位的,而是将物理内存分为许多大小为4KB的块,称为页框或页帧,这就是为什么我们在创建共享内存是建议将大小设定…

LTSPICE仿真电路:(十九)磁珠的一些简单仿真

1.作用 简单来说就是用来滤波的,将高频信号转化为热量滤除掉,低频有用信号正常通过 2.参数 上图几个参数比较简单,就是字面上的意思,更重要的就是频率阻抗图 不同曲线代表不同型号的磁珠,实际上除了额定电流外&#…

基于springboot+vue+uniapp的语言课学习系统小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

艺活网DIY手工制作网站源码 工艺制作教程平台源码,带数据

帝国CMS仿《手艺活》DIY手工制作网源码,仿手艺活自适应手机版模板。 带数据库和图片资源,一共5个G大小,下载需耐心。 92开发 手艺活网DIY手工制作网站源码 创意手工艺品制作教程平台系统帝国h5自适应手机端 是一套展示各种 DIY 小物品精美又…

@react-google-maps/api实现谷歌地图中添加多边围栏,并可编辑,编辑后可获得围栏各个点的经纬度

先上一张效果图 看看是不是大家想要的效果~ ❤️ 由于该功能微微复杂一点,为了让大家精准了解 我精简了一下地图代码 大家根据自己的需求将center值和paths,用setState做活就可以了 1.第一步要加入项目package.json中或者直接yarn install它…

[激光原理与应用-97]:激光焊接焊中检测系统系列介绍 - 1 - 什么是焊接以及传统的焊接方法

目录 一、什么是焊接 1.1 概述 1.2 基本原理 二、传统的焊接技术与方法 2.1 手工电弧焊: 1、定义与原理 2、特点 3、焊条类型 4、应用领域 5、安全注意事项 2.2 气体保护焊: 1、原理与特点 2、应用领域 3、气体选择 4、注意事项 2.3 电阻…

高级IO_多路转接之Poll

文章目录 前言一、poll二、poll使用步骤总结 前言 上一章我们学习了select,但是select作为早期的多路转接接口,缺点十分明显,于是又出现poll和epoll等接口,今天我们就来学习一下poll的使用 提示:以下是本篇文章正文内…

60种AI工具用法 学会探索AI的无限可能

外面还在卖的课程,学会探索AI的无限可能,从构建精准的提示词到获取个性化新闻,从快速制作PPT到短视频内容的智能提炼,再到编程、股市分析和视频剪辑,AI工具助您工作学习效率飞跃提升! 百度网盘 请输入提取…

2024 世界人工智能大会暨人工智能全球治理高级别会议全体会议在上海举办,推动智能向善造福全人类

2024 年 7 月 4 日,2024 世界人工智能大会暨人工智能全球治理高级别会议-全体会议在上海世博中心举办。联合国以及各国政府代表、专业国际组织代表,全球知名专家、企业家、投资家 1000 余人参加了本次会议,围绕“以共商促共享,以善…

【图像分割】mask2former:通用的图像分割模型详解

最近看到几个项目都用mask2former做图像分割,虽然是1年前的论文,但是其attention的设计还是很有借鉴意义,同时,mask2former参考了detr的query设计,实现了语义和实例分割任务的统一。 1.背景 1.1 detr简介 detr算是第…

基于github.com/emmansun/gmsm库编写的SM2对C 开放的库

go-gmsm cgo库 介绍 基于github.com/emmansun/gmsm库编写的SM2对C 开放的库 特性:非对称加密、不支持跨平台编译 git地址:https://gitee.com/state-secret-series/go-gmsm.git 软件架构 Go、Cgo、mod 安装教程 克隆仓库 git clone https://gite…

香橙派AIpro实测:YOLOv8便捷检测,算法速度与运行速度结合

香橙派AIpro实测:YOLOv8便捷检测,算法速度与运行速度结合 文章目录 香橙派AIpro实测:YOLOv8便捷检测,算法速度与运行速度结合一、引言二、香橙派AIpro简介三、YOLOv8检测效果3.1 目标检测算法介绍3.1.1 YOLO家族3.1.2 YOLOv8算法理…

NDT配准收敛问题

GitHub - abougouffa/ndtpso_slam: ROS package for NDT-PSO, a 2D Laser scan matching algorithm for SLAM SRG NDT Das_Arun_2013.pdf;jsessionid97F7EDB4E8805EFE68D1E46687EF593F (uwaterloo.ca)

上海计算机考研炸了,这所学校慎报!上海大学计算机考研考情分析!

上海大学(Shanghai University),简称“上大”,是上海市属、国家“211工程”重点建设的综合性大学,教育部与上海市人民政府共建高校,国防科技工业局与上海市人民政府共建高校,国家“双一流”世界…

【微信小程序开发】微信小程序界面弹窗,数据存储相关操作代码逻辑实现

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

ArcGIS Pro SDK (七)编辑 12 编辑模版

ArcGIS Pro SDK (七)编辑 12 编辑模版 文章目录 ArcGIS Pro SDK (七)编辑 12 编辑模版1 在图层上按名称查找编辑模板2 查找属于独立表的表模板3 当前模板4 更改模板的默认编辑工具5 隐藏或显示模板上的编辑工具6 使用图层创建新模…

how to use Xcode

Xcode IDE概览 Xcode 页面主要分为以下四个部分: 工具栏(ToolBar area):主要负责程序运行调试,编辑器功能区域的显示 / 隐藏;编辑区(Editor area):代码编写区域&#xf…

140. 好二叉树(卡码网周赛第二十四期(23年腾讯音乐笔试真题))

140. 好二叉树&#xff08;卡码网周赛第二十四期&#xff08;23年腾讯音乐笔试真题&#xff09;&#xff09; 题目描述 小红定义一个二叉树为“好二叉树”&#xff0c;当且仅当该二叉树所有节点的孩子数量为偶数(0 或者 2)。 小红想知道&#xff0c;n&#xff08;1< n <…

vue table表格 ( parseTime-格式化时间)

<el-table-column label"发布时间" width"420px" prop"bidPublishDatetime"><template slot-scope"scope"><span>{{ parseTime(scope.row.bidPublishDatetime, {y}-{m}-{d}) }}</span></template></…