2011-03-15 10 views
37

私は狂っていると思います。何らかの理由で私が苦労しているという簡単な質問があります。jqueryで配列の長さ(サイズ)を調べよう

なぜ「未定義」を返しますか?

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

編集私はもともとtestvar [1] .LENGTHを入力しました。私はこれが誤りであることを知っていた。私はtestvar.lengthを意味しました

+0

何を達成しようとしていますか?その結果はどうなると思いますか? – Cameron

答えて

67

2は配列ではないので、数字です。数字には長さがありません。

おそらく、testvar.lengthと書くことを意図していました。オブジェクト({ ... }表記を使用して作成された)には長さがないため、これも未定義です。 - の説明についてthis answer参照JavaScript配列を0から始まるインデックスを付け、その結果が3である、従って理由(sparse必ずしもなく、2れていないことを

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

のみ配列は、長さ特性を有します配列が疎であるときとそうでないとき)。

1

整数にはメソッドの長さがありません。文字列にしてみ

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

testvar [1]数2数字はlengthプロパティを持っていない、とあなたは未定義である2.lengthのためにチェックしていることである配列インデックスの値です。配列の長さを調べたい場合は、testvar.lengthをチェックしてください。

関連する問題