2011-03-15 6 views
37

나는 미치겠다고 생각합니다. 나는 어떤 이유로해서 고생하고 있다는 간단한 질문을 가지고있다.jquery에서 배열의 길이 (크기)를 찾으십시오.

왜 아래에 'undefined'가 반환됩니까?

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

편집 나는 원래 TESTVAR [1] .length를 입력했습니다. 나는 이것이 오류라고 생각했다. 나는 testvar를 의미했습니다. 길이

+0

무엇을하려고합니까? 그 결과는 무엇을 기대합니까? – Cameron

답변

67

2은 배열이 아니기 때문에 숫자입니다. 번호는 길이가 없습니다.

아마도 당신은 testvar.length을 쓸 것입니다. { ... } 표기법을 사용하여 생성 된 객체는 길이가 없으므로이 또한 정의되지 않습니다. -에 대한 설명은 this answer를 참조 자바 스크립트 배열이 0에서 시작 인덱스와 결과가 3 따라서 왜 (sparse 필요하지 않으며이되지 않습니다

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 숫자의 길이 속성을 가지고 있지 않으며, 당신이 정의되지 2.length를 확인하고 있습니다 그 배열 인덱스의 값입니다. 배열의 길이를 원하면 testvar.length를 확인하십시오.

관련 문제