2011-08-04 2 views
3

문자열 인덱스 배열에서 작동하는 $ .each() jquery 함수를 가져올 수 없습니다.Jquery 각 함수가 문자열 인덱스 배열에 대해 작동하지 않습니다

예 @ JSFiddle -> http://jsfiddle.net/WKDUA/

코드 :

var firstArray = [52, 33]; 

document.writeln("First Array:\n<ul>"); 
$.each(firstArray, function(key, value) 
{ 
    document.writeln('<li>[' + key + ']: ' + value + "</li>\n"); 
}); 
document.writeln("</ul>\n"); 


var secondArray = new Array(); 

secondArray['first'] = 'foo'; 
secondArray['second'] = 'bar'; 

document.writeln("Second Array:\n<ul>"); 
$.each(secondArray, function(key, value) 
{ 
    document.writeln('<li>[' + key + ']: ' + value + "</li>\n"); 
}); 
document.writeln("</ul>\n"); 

출력 :

First Array: 
    [0]: 52 
    [1]: 33 
Second Array: 
+1

실제로 그 목적이 아닌 어레이 – Evan

답변

12

array은 항상 요소의 위치를 ​​나타내는 정수로 색인화됩니다.

당신은 누구의 속성을 대괄호 표기법을 통해 액세스 할 수있는 object 찾고있는

: 당신은 배열에있는 요소를 추가하지 않았기 때문에

var obj = {}; 

obj['first'] = 'foo'; 
obj['second'] = 'bar'; 

document.writeln("Second Array:\n<ul>"); 
$.each(obj, function(key, value) 
{ 
    document.writeln('<li>[' + key + ']: ' + value + "</li>\n"); 
}); 
document.writeln("</ul>\n"); 

를 원래의 코드에서 $.each 블록이 입력되고 있지 않았다. 이 해당 배열에 대해 firstsecond 속성을 정의하고 값을 할당했습니다.

예 :http://jsfiddle.net/ddTPu/

3

문자열 색인 배열 (. a.k.a 연관 배열)에있는 개체, 그리고 배열.
배열은 숫자가 아닌 숫자를 가질 수 없습니다 (번호이기 때문에 Math.PI 일 수도 있습니다).
이 솔루션은 객체로 secondArray를 선언하는 것입니다 : 당신은 here a working example을 볼 수 있습니다

var secondArray = {};// or var secondArray = new Object(); 

.

관련 문제