2017-03-21 7 views
0

Ich bin gerade dabei, Schleifen zu lernen, und in einer for-Schleife, wenn ich ein Array durchlaufen bin, in der zweiten Bedingung, sage ich, dass ich < arrayName.length. Ich verstehe die Logik hier nicht, sicherlich sollte es i = arrayName.length; Warum muss die Länge < (kleiner als) sein, wenn Sie das gesamte Array durchlaufen?Loop Control Structure - Javascript

Beispiel:

var myArray = ['cats', 'dogs', 'monster munch']; 

for (i = 0; i < myArray.length; i++) { 
    console.log([i]); 
} 

Jede Erklärung wäre wirklich nützlich und ich vermute, das ist das gleiche mit anderen Javascript Schleifenstrukturen ist?

Emily.

+2

Da der Index des letzten Elements für ein Array mit der Länge 3 ist 2 –

+0

Weil der zweite Teil eines 'for' ist die * Bedingung * die, wenn wahr, erlaubt die Schleife durch einen zu laufen mehr Zeit. –

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for Lesen Sie die Dokumentation von mdn durch. –

Antwort

1

Die erste Anweisung in der Schleife initialisiert i auf 0, die zweite Anweisung ist die Bedingung also im Grunde sagt es "während i ist kleiner als die Länge ..." bis die Aussage falsch ist. Die 3. Anweisung ist Inkrement.

+0

Ja, ich verstehe den Kontext, ich verstehe einfach nicht, warum es i

+1

Wie würde es wissen, dass Sie das gesamte Array durchlaufen? und nicht ein anderes Array in der gleichen Datei sagen? Außerdem durchläuft man in Ihrem Beispiel nicht genau das Array, Sie wiederholen nur einige Aufgaben, bis die Bedingung nicht mehr wahr ist. Wenn Sie das Array durchlaufen möchten, verwenden Sie 'for (x in myArray) {machen Sie etwas}' @EmilyChewy – Wright

0

Die Aussage in der Mitte ist die sogenannte "Bedingung". Wenn diese Anweisung true lautet, wird die Schleife fortgesetzt. Wenn es false ist, stoppt die Schleife.

Und ja, in Javascript ist es nützlich zu beachten, dass es die Aussage in der Mitte ist. Sie können viele Initialisierungen und viele Inkremente haben, aber der mittlere muss immer die Bedingung sein. z.B.

for (var i=0; var j=10; i != j; i++; j--) { // do stuff } 

ein gültiger mit zwei Variablendeklarationen und zwei Schritten für die Schleife. Es stoppt wenn i == j