두 번째 경고가 0으로 표시되는 이유를 설명 할 수 있습니까?자바 스크립트 배열의 길이 메서드
var pollData = new Array();
pollData['pollType'] = 2;
alert(pollData['pollType']); // This prints 2
alert(pollData.length); // This prints 0 ??
두 번째 경고가 0으로 표시되는 이유를 설명 할 수 있습니까?자바 스크립트 배열의 길이 메서드
var pollData = new Array();
pollData['pollType'] = 2;
alert(pollData['pollType']); // This prints 2
alert(pollData.length); // This prints 0 ??
숫자 인덱스를 추가 할 때만 배열의 길이가 변경됩니다. 예를 들어,
pollData["randomString"] = 23;
의 길이에 영향을주지 않습니다,하지만
var pollData = [];
pollData["45"] = "Hello";
pollData.length; // 46
는 키가 숫자 나 문자열이 있다면 그만큼 중요하지 않습니다 (46) 참고로 길이를 변경 그것은 숫자 정수입니다.
게다가,이 방법으로 배열을 사용하지 않아도됩니다. 배열이 객체이기 때문에 더 많은 부작용을 고려해야하며 JavaScript에서는 객체가 임의의 키를 문자열로 저장할 수 있습니다.
아직 배열에 아무것도 넣지 않았기 때문에. 배열 에 동적으로 생성 된 pollType
속성에 할당 한 것은입니다.
숫자 색인을 사용하면 배열이 자동으로 길이를 유지합니다. 예를 들어
var arr = [ ]; // same as new Array()
arr[2] = 'Banana!';
alert(arr.length); // prints 3 (indexes 0 through 2 were created)
length
재산권 고려 이름 인덱스되는 배열의 해당 멤버 소요 (같은 '1'
, '2'
, '3'
, ...).
JavaScript의 배열에는 숫자 인덱스 만 있습니다.
본질적으로 위에서 수행 한 개체를 사용하여 해당 배열 개체의 속성을 설정합니다.
array.length는 배열에 저장되는 값의 수를 반환합니다. 첫 번째 경고는 'pollType'위치의 값을 반환합니다.
자바 스크립트 배열 도움을 필요로 할 때 항상 사용하는 참조 가이드는이 페이지입니다 http://www.hunlock.com/blogs/Mastering_Javascript_Arrays
나는 또한이 문제로 실행 수 있으므로, 연관 배열을 지원하지 않음 제목 자바 스크립트에서이 말씀을 읽을 것또한.
그냥 Array.length가하는 것처럼 보이지만, 그렇게 행동하지 않는다는 것을 기억하고 싶습니다. 여기 : http://jsfiddle.net/6WrkT/1/ –
var pollData = Array();
function test() {
pollData[0] = 2
alert(pollData[0]);
alert(pollData.length);
}
// [x]는 배열 위치입니다. 따라서 [ 'polltype']이 (가)
그 문제를 일으키고 있습니다. 배열에 신경 쓰지 마라. –