我從我的JSON響應中獲取對象數組。有時我得到一個長度爲1的數組,其中有一個空對象。我如何檢查這種情況?Javascript:如何檢查數組中的空對象?
I tried with a few things-
myarray[0]=='empty' || myarray[0] == 'undefined'
or myarray.indexOf(0)== -1
但沒有解決的問題
我從我的JSON響應中獲取對象數組。有時我得到一個長度爲1的數組,其中有一個空對象。我如何檢查這種情況?Javascript:如何檢查數組中的空對象?
I tried with a few things-
myarray[0]=='empty' || myarray[0] == 'undefined'
or myarray.indexOf(0)== -1
但沒有解決的問題
您可以使用Object.keys()方法返回的所有屬性名稱和檢查它的長度:
Object.keys(myarray[0]).length === 0;
@ T.J.Crowder我得到的印象就像''[[}]「''。問題可以澄清一些。 –
我誤解了你的答案。你很可能是正確的用戶意味着什麼,很好的捕獲。 –
感謝您的快速回答Sir – JOGO
這取決於你的意思是「空的東西。 「
如果你的意思是你得到:
[{}]
...然後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
,""
,NaN
,null
,undefined
,或者當然,false
):
if (!myarray[0])
「空」是什麼意思?我能想到的最「空」值是'undefined',但JSON不能給你一個帶有'undefined'項的數組,因爲它沒有這個概念。 –
僅供參考,'myarray [0] =='empty''測試第一個數組元素是**字符串**''空''。首先,這似乎不是一件有用的事情。同樣,'myarray.indexOf(0)'試圖找到* value *'0'的索引。看起來你需要加強一些關於值的JavaScript基礎知識:http://eloquentjavascript.net/01_values.html,http://eloquentjavascript.net/04_data.html。 –