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

Javascript: how to check empty object in an array?

本问题已经有最佳答案,请猛点这里访问。

我正在从JSON响应中获取一个对象数组。有时我会得到一个长度为1的数组,其中有一个空对象。我该如何检查这种情况?

1
2
3
4
I tried with a few things-

  myarray[0]=='empty' || myarray[0] == 'undefined'
  or myarray.indexOf(0)== -1

但没有解决问题


可以使用object.keys()方法返回所有属性名并检查其长度:

1
Object.keys(myarray[0]).length === 0;


这取决于你所说的"空"是什么意思。

如果你的意思是你得到:

1
 [{}]

…那么Madox2的答案是一个很好的检查方法,下面的任何一个都不会起作用。

但如果你是指[null]或类似的:

如果您想专门检查undefined(注意===,而不是==(但您不会从json那里得到):

1
if (myarray[0] === undefined)

或者专门针对null(注:===,而不是==):

1
if (myarray[0] === null)

或其中一种情况(注:==而不是===):

1
if (myarray[0] == null)

或任何不稳定值(0""NaNnullundefined,当然,false

1
if (!myarray[0])