2013-03-04 2 views
1

임에도 불구하고 여전히 도움이 필요하고 내 문제를 표시하기 위해 jsfiddle 게시글을 편집했습니다. http://jsfiddle.net/7ztEf/6/자바 스크립트 배열 + 색인

인덱스 문자열이 모든 숫자를 반환하는 것을 볼 수 있듯이 관련 인덱스 값 [0] = 0 [1] = 1로 숫자를 반환하고 싶습니다. 다시 한 번 감사드립니다 Paul

나는 DIV ID에 값을 반환하는 숫자 생성기 스크립트를 가지고 있습니다. I 즉 > 1 && <= 20 = red

function myNumbers(numbers, type) { 
    for (var x in numbers) { 
     document.getElementById(type + x).innerHTML = numbers[x]; 
    } 
} 

이 스크립트는 난수 num0num3 ...라는 div의 각각을 채우는 숫자 값에 기초하여 색 교체 가능하도록, 어떻게 든에 후크해야한다.

나는 numbers[x]의 첫 번째 값을 쿼리 할 수 ​​있었지만 나머지를 반복하기 위해 인덱스 순서를 설정해야합니다.

+0

번호는 무엇입니까? 배열 또는 객체입니까 –

+0

코드가 잘 보입니다.이 데모를 확인하고 원하는 o/p를 알려주시겠습니까? http://jsfiddle.net/arunpjohny/7ztEf/ –

+0

'for..in'과 함께 사용하면 안됩니다. 배열에서는 숫자 인덱스뿐만 아니라 모든 열거 가능 속성 (상속 된 속성 포함)을 반복합니다. 또한 주문이 보장되지는 않습니다 (하지만 여기에는 문제가 없을 수 있음). 인덱스를 증가시킬 때 보통의'for' 루프를 사용하거나 오래된 브라우저의 경우 shim을 사용하여 forEach를 사용하십시오. – RobG

답변

0

Array.forEach을 사용하십시오.

numbers.forEach(function (number, index) {...}) 
0

배열에 for..in을 사용하지 마십시오. 그것들은 객체에 사용하기위한 것이므로 for..in을 배열에 사용하면 length 요소가 반환됩니다.

어느 ethagnawl가 언급 한 바와 같이 대해 forEach를 사용하거나 기존의 for 루프 사용

for (var x=0; x < numbers.length; x++) { 
    document.getElementById(type + x).innerHTML = numbers[x]; 
} 
+0

Thanks @slebetman! 여전히 [0] = 0,1,2,3을 반환합니다. 인덱스 [0] [1] [2]와 숫자 값을 나열해야합니다. 건배 P – tuvboy

+0

아주 가깝습니다. 아직도 오해하고있는 것들이 있습니다. 방금 당신의 코드를 수정하여 코드를 수정했습니다 : http://jsfiddle.net/h9AS6/1/ – slebetman

+0

jsfiddle과 당신의 차이점을주의 깊게 읽으십시오. – slebetman