2011-03-15 44 views
37

我想我會瘋了。我有一個簡單的問題,我出於某種原因正在努力。在jquery中查找數組的長度(大小)

爲什麼下面返回'undefined'?

var testvar={}; 
testvar[1]=2; 
testvar[2]=3; 
alert(testvar.length); 

編輯我最初鍵入的testvar [1]。長度。我知道這是一個錯誤。我的意思是testvar.length

+0

你想完成什麼?你期望的結果是什麼? – Cameron

回答

67

因爲2不是一個數組,它是一個數字。數字沒有長度。

也許你的意思是寫testvar.length;這也是未定義的,因爲對象(使用{ ... }表示法創建)沒有長度。

只有陣列具有長度屬性:

var testvar = [ ]; 
testvar[1] = 2; 
testvar[2] = 3; 
alert(testvar.length); // 3 

注意的Javascript陣列索引開始0並且不一定sparse(因此爲什麼結果是3而不是2 - 見this answer爲的說明當數組將稀疏,當它不會)。

1

整數沒有方法長度。嘗試串

var testvar={}; 
testvar[1]="2"; 
alert(testvar[1].length); 
4

的testvar [1]是數組索引,這是數字2號不具有length屬性,而你檢查2.length這是未定義的值。如果你想要陣列的長度只是檢查testvar.length

相關問題