如何从 JavaScript 中的数组中删除空元素?

从 JavaScript 数组中删除空元素看似很简单,由于 JavaScript 的语言的特殊性,对于空的理解有不同意义。在本文中,将通过如何从 JavaScript 数组中删除空元素,总结一下 JavaScript 中空值和假值的知识点。
关于空值
在 JavaScript 中,空值的定义通常应该考虑以下三种情况 空字符串、null、undefined
关于假值 Falsy
在 JavaScript 中,有一个专门的列表,包括以下 7 个值,它们被称为假值,即它们在条件语句中都被计算为 false :
数字
0、-0:数字0和-0BigInt
0n-0n:在 BigInt 零和负 BigInt 零nullundefinedfalseNaN空字符串
"": 空字符串值。
上面 7 个值单独在条件语句中是 false ,但是它们之间的比较未必就是 true ,下面的代码展示了一些 == 比较,看看有没有让你觉得不可思议的判断:
下面让来看看 === 的比较结果:
关于真值
JavaScript 中除了上面 7 种假值,剩下的都是真值,以下几种情况是容易被忽视的真值:
"false": 字符串"false""0":字符串"0"[]:空数组{}:空对象function() {}:空函数
filter 使用
现在回到正题,可以使用数组实例的 filter 方法从数组中删除空元素。
如果想删除所有虚假值包括 null 、 undefined 、 0 、空字符串、 NaN 和 false,上面的过滤条件可以直接将布尔函数传递给 filter ,如下:
如果只想返回一个数字的数组,可以这样写:
上面返回数字的写法,从结果可以看出,0 被过滤掉了,因此上面只是实现了返回非 0 数字组成的数组,下面是获取数组所有数字的方法:
总结
通过从 JavaScript 中的数组中删除空元素,总结 JavaScript 中真值假值情况,在 == 和 === 条件下的比较结果。而对于空值的定义需要根据具体需求来定义边界,对于数字过滤或者判断,经常容易导致 0 的丢失。
版权声明: 本文为 InfoQ 作者【devpoint】的原创文章。
原文链接:【http://xie.infoq.cn/article/07a8545d11e0dab8953c6a570】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。











评论