2012-04-08 6 views
0

OK .. Ich muss wirklich verrückt sein. Warum sollten diese nicht 3-5 für "a" ausdrucken? Ich habe zwei verschiedene Methoden ausprobiert, um das Array 3-5 unten zu speichern, und beide scheinen offensichtlich. Es muss etwas in der zugrundeliegenden Übersetzung geben, das ich gerade nicht sehe.Hinzufügen zu Array in for-Schleife speichert Wert nicht richtig?

<script> 
    var articlesKey = []; 
    for(var i = 3; i < 6; i++) { 
     articlesKey.push(i); 
     document.write('<br>i:'+i); 
    } 
    for (a in articlesKey) 
     document.write("<br>a:"+a); 


    articlesKey = []; 
    var count = 0; 
    for(var i = 3; i < 6; i++) { 
     articlesKey[count] = i; 
     document.write('<br>i:'+i); 
     count++; 
    } 
    for (a in articlesKey) 
     document.write("<br>a:"+a); 
</script> 

Es druckt:

i:3 
i:4 
i:5 
a:0 
a:1 
a:2 
i:3 
i:4 
i:5 
a:0 
a:1 
a:2 

Antwort

3

for(a in articlesKey) Iterierten a durch die KEYS von articlesKey (lassen Sie dann die Werte als articlesKey[a] erhalten). Hier ist nichts falsch.

+0

Hah. Ich bin ein Idiot. :) Vielen Dank! – Fmstrat

0

Das ist sehr einfach, weil a den Array-Index in der Schleife darstellt, nicht den Wert am Index. Fix:

document.write("<br>a:"+articlesKey[a]); 
Verwandte Themen