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

JOG*_*OGO 0 javascript arrays

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

I tried with a few things-

  myarray[0]=='empty' || myarray[0] == 'undefined'
  or myarray.indexOf(0)== -1
Run Code Online (Sandbox Code Playgroud)

但没有解决问题

mad*_*ox2 11

您可以使用Object.keys()方法返回所有属性名称并检查它的长度:

Object.keys(myarray[0]).length === 0;
Run Code Online (Sandbox Code Playgroud)


T.J*_*der 5

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

如果你的意思是你得到:

 [{}]
Run Code Online (Sandbox Code Playgroud)

...那么madox2 的答案是一个很好的检查方法,以下都不起作用。

但如果你的意思[null]或类似:

如果您想专门检查undefined(注意===而不是==)(但您不会从 JSON 中获得):

if (myarray[0] === undefined)
Run Code Online (Sandbox Code Playgroud)

或专门用于null(注意===而不是==):

if (myarray[0] === null)
Run Code Online (Sandbox Code Playgroud)

或者对于其中任何一个(注意==而不是===):

if (myarray[0] == null)
Run Code Online (Sandbox Code Playgroud)

或者对于任何虚假值(0, "", NaN, null, undefined, 或者当然,false):

if (!myarray[0])
Run Code Online (Sandbox Code Playgroud)