Javascript:如何检查数组中的空对象?

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; 这取决于你所说的“空”是什么意思 如果你的

我从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;

这取决于你所说的“空”是什么意思

如果你的意思是你得到:

 [{}]
…那么,下面的任何一项都不起作用

但如果您指的是
[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])