如何在javascript中高效检查假相等对象?

时间:2019-01-01 03:15:40

标签: javascript

我想知道是否存在一种有效的方法来检查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来说似乎不适用是xnull是空的x。相比之下,在其他语言(例如python)中,我们只需要编写new Map()即可删除false-equal元素。

2 个答案:

答案 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){.....}