我想知道是否存在一种有效的方法来检查javascript中的虚假对象或基元。
例如,假设存在一个长度为1的数组。它可以是[undefined]
,[<1 empty item>]
,[[]]
,[null]
,[NaN]
,{{ 1}},依此类推。我们如何快速检查元素?
我想到上述问题是因为我正在为算法问题编写代码,在某些情况下,我需要使用[new Set()]
循环
for
给定的for (var x of a) { x.......}
的结构有点复杂,我曾经使用a
来确保x不是假值,但是对于x === undefined || x.length === 0
来说似乎不适用是x
或null
是空的x
。相比之下,在其他语言(例如python)中,我们只需要编写new Map()
即可删除false-equal元素。
答案 0 :(得分:0)
您可以先使用arr.toString()
,所有提供的伪数组都将转换为空字符串:''
,除了[new Set()]
[new Set()].toString()
"[object Set]"
因此,如果您得到一个真正的字符串,则可以检测到数组的第一个元素,例如(new Set()).size
答案 1 :(得分:0)
我认为您可以在JavaScript中使用真实性 javascript [falsy values] [1] [1]中的falsy值列表:https://developer.mozilla.org/en-US/docs/Glossary/Falsy
在您的情况下为if(x){.....}