2016-03-24 28 views
0

我從我的JSON響應中獲取對象數組。有時我得到一個長度爲1的數組,其中有一個空對象。我如何檢查這種情況?Javascript:如何檢查數組中的空對象?

I tried with a few things- 

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

但沒有解決的問題

+1

「空」是什麼意思?我能想到的最「空」值是'undefined',但JSON不能給你一個帶有'undefined'項的數組,因爲它沒有這個概念。 –

+0

僅供參考,'myarray [0] =='empty''測試第一個數組元素是**字符串**''空''。首先,這似乎不是一件有用的事情。同樣,'myarray.indexOf(0)'試圖找到* value *'0'的索引。看起來你需要加強一些關於值的JavaScript基礎知識:http://eloquentjavascript.net/01_values.html,http://eloquentjavascript.net/04_data.html。 –

回答

9

您可以使用Object.keys()方法返回的所有屬性名稱和檢查它的長度:

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

@ T.J.Crowder我得到的印象就像''[[}]「''。問題可以澄清一些。 –

+0

我誤解了你的答案。你很可能是正確的用戶意味着什麼,很好的捕獲。 –

+0

感謝您的快速回答Sir – JOGO

3

這取決於你的意思是「空的東西。 「

如果你的意思是你得到:

[{}] 

...然後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""NaNnullundefined,或者當然,false):

if (!myarray[0])