Javascript:如何检查数组中的空对象?
我从JSON响应中获得一个对象数组。有时我得到一个长度为1的数组,其中有一个空对象。我如何检查这种情况Javascript:如何检查数组中的空对象?,javascript,arrays,Javascript,Arrays,我从JSON响应中获得一个对象数组。有时我得到一个长度为1的数组,其中有一个空对象。我如何检查这种情况 I tried with a few things- myarray[0]=='empty' || myarray[0] == 'undefined' or myarray.indexOf(0)== -1 但没有解决问题您可以使用方法返回所有属性名并检查其长度: Object.keys(myarray[0]).length === 0; 这取决于你所说的“空”是什么意思 如果你的
I tried with a few things-
myarray[0]=='empty' || myarray[0] == 'undefined'
or myarray.indexOf(0)== -1
但没有解决问题您可以使用方法返回所有属性名并检查其长度:
Object.keys(myarray[0]).length === 0;
这取决于你所说的“空”是什么意思 如果你的意思是你得到:
[{}]
…那么,下面的任何一项都不起作用
但如果您指的是[null]
或类似内容:
如果您想专门检查未定义的
(请注意==
而不是=
)(但您无法从JSON获得该信息):
或者特别针对null
(注意==
而不是=
):
或者对于其中任何一个(注意=
而不是=
):
或者对于任何错误值(0
,”
,NaN
,null
,未定义,或者当然是错误
):
@T.J.Crowder我觉得这有点像“[{}]”
。这个问题可以澄清一下。我误解了你们的回答。关于用户的意思,您可能是对的,很好的回答。谢谢您的快速回答。您需要添加&&myarray.length==1
,以完全符合要求,但我认为这就是OP想要的,您所说的“空”是什么意思?我能想到的最“空”的值是undefined
,但是JSON不能给你一个带有undefined
项的数组,因为它没有这个概念。仅供参考,myarray[0]=='empty'
测试第一个数组元素是否是字符串'empty'
。首先,这似乎不是一件有用的事情。类似地,myarray.indexOf(0)
尝试查找值0
的索引。似乎您需要增加一些关于值的JavaScript基础知识:。
if (myarray[0] === undefined)
if (myarray[0] === null)
if (myarray[0] == null)
if (!myarray[0])