2011-12-07 59 views
0

如果我有一個包含對象ListOfOtherObjects陣列的對象爲MyObject和我寫:JavaScript的測試長度

if (MyObject.ListOfOtherObjects.length !== 0) {...} 

測試,看看是否該數組包含OtherObjects,是它一樣寫這:

if (MyObject.ListOfOtherObjects) {...} 

感謝。

+1

我會做'如果(arr.length> 0){...'。只是'如果(arr.length){...'也會這樣做,但不是那麼清楚...... –

+0

@frenchie:當你爲自己測試時發生了什麼?在做這個測試時,你注意到用if(MyObject.ListOfOtherObjects){',空數組的行爲與非空數組的行爲相同嗎? – RightSaidFred

回答

4

不,你需要檢查length屬性。一個Array總是truthy,像任何其他Object

你可以,但是,省略!== 0顯式檢驗。

if (MyObject.ListOfOtherObjects.length) {...} 

這種情況將是true如果Array具有至少一個元件。

+0

假設不爲空或未定義。 –

+1

@CalgaryCoder:我不太明白你的意思。 – alex

+0

你的原始回答說MyObject.ListOfOtherObjects作爲數組將永遠是正確的。答案被擴大了,所以忽略。 –