Wie baue ich eine Schleife in JavaScript?[geschlossen]
-
09-06-2019 - |
Frage
Wie kann ich eine Schleife in JavaScript erstellen?
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
}