我从JSON响应中获取了一组对象。有时我得到一个长度为1的数组,其中包含一个空对象。我该如何检查这种情况?
I tried with a few things-
myarray[0]=='empty' || myarray[0] == 'undefined'
or myarray.indexOf(0)== -1
但没有解决问题
答案 0 :(得分:9)
您可以使用Object.keys()方法返回所有属性名称并检查其长度:
Object.keys(myarray[0]).length === 0;
答案 1 :(得分:4)
这取决于你所说的“空”。
如果你的意思是你得到了:
[{}]
...然后madox2's answer is a good way to check,以下都不会有效。
但如果你的意思是[null]
或类似的话:
如果您想专门检查undefined
(请注意===
而非==
)(但您不会从JSON获得):
if (myarray[0] === undefined)
或专门针对null
(请注意===
而不是==
):
if (myarray[0] === null)
或其中任何一个(请注意==
而不是===
):
if (myarray[0] == null)
或任何 falsy 值(0
,""
,NaN
,null
,undefined
,当然, false
):
if (!myarray[0])