Frage

Wie kann ich eine Schleife in JavaScript erstellen?

War es hilfreich?

Lösung

Für Schleifen

for (i = startValue; i <= endValue; i++) {
    // Before the loop: i is set to startValue
    // After each iteration of the loop: i++ is executed
    // The loop continues as long as i <= endValue is true
}

For...in Schleifen

for (i in things) {
    // If things is an array, i will usually contain the array keys *not advised*
    // If things is an object, i will contain the member names
    // Either way, access values using: things[i]
}

Es ist eine schlechte Praxis, es anzuwenden for...in Schleifen zum Durchlaufen von Arrays.Es widerspricht dem ECMA 262 Standard und kann Probleme verursachen, wenn dem Array-Objekt nicht standardmäßige Attribute oder Methoden hinzugefügt werden, z. B.von Prototyp. (Dank an Chase Seibert für den Hinweis in den Kommentaren)

While-Schleifen

while (myCondition) {
    // The loop will continue until myCondition is false
}

Andere Tipps

Hier ist ein Beispiel für eine for-Schleife:

Wir haben eine Reihe von Artikeln Knoten.

for(var i = 0; i< nodes.length; i++){
    var node = nodes[i];
    alert(node);
}

Sie könnten auch darüber nachdenken, Ihre Schleifengeschwindigkeit zu optimieren;sehen http://www.robertnyman.com/2008/04/11/javascript-loop-performance/

Abgesehen von den eingebauten Schleifen (while() ..., do ... while(), for() ...), gibt es eine Struktur einer selbstaufrufenden Funktion, auch bekannt als Rekursion um eine Schleife ohne die drei integrierten Schleifenstrukturen zu erstellen.

Folgendes berücksichtigen:

// set the initial value
var loopCounter = 3;

// the body of the loop
function loop() {

    // this is only to show something, done in the loop
    document.write(loopCounter + '<br>');

    // decrease the loopCounter, to prevent running forever
    loopCounter--;

    // test loopCounter and if truthy call loop() again 
    loopCounter && loop();
}

// invoke the loop
loop();

Es erübrigt sich zu erwähnen, dass diese Struktur häufig in Kombination mit einem Rückgabewert verwendet wird. Dies ist daher ein kleines Beispiel für den Umgang mit Werten, die nicht beim ersten Mal verfügbar sind, sondern am Ende der Rekursion:

function f(n) {
    // return values for 3 to 1
    //       n   -n  ~-n   !~-n   +!~-n   return
    // conv int neg bitnot  not  number 
    //       3   -3   2    false    0    3 * f(2)
    //       2   -2   1    false    0    2 * f(1)
    //       1   -1   0     true    1        1
    // so it takes a positive integer and do some conversion like changed sign, apply
    // bitwise not, do logical not and cast it to number. if this value is then
    // truthy, then return the value. if not, then return the product of the given
    // value and the return value of the call with the decreased number
    return +!~-n || n * f(n - 1);
}

document.write(f(7));

Eine Schleife in JavaScript sieht so aus:

for (var = startvalue; var <= endvalue; var = var + increment) {
    // code to be executed
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top