Gibt es neben i++
und ++i
noch andere Möglichkeiten, eine for
- Schleife in Javascript zu erhöhen? Zum Beispiel möchte ich um 3 statt um eins erhöhen.
for (var i = 0; i < myVar.length; i+3) {
//every three
}
7 Antworten
Verwenden Sie den Zuweisungsoperator +=
Zuweisung:
for (var i = 0; i < myVar.length; i += 3) {
Technisch gesehen können Sie jeden gewünschten Ausdruck in den endgültigen Ausdruck der for-Schleife einfügen, dieser wird jedoch normalerweise zum Aktualisieren der Zählervariablen verwendet.
Weitere Informationen zu den einzelnen Schritten der for-Schleife finden Sie unter im MDN Artikel.
Im letzten Teil des ternären Operators können Sie die Schrittgröße des Inkrements angeben. Zum Beispiel bedeutet i ++ ein Inkrementieren um 1. i + = 2 ist dasselbe wie i = i + 2, ... usw. Beispiel:
let val= [];
for (let i = 0; i < 9; i+=2) {
val = val + i+",";
}
console.log(val);
Erwartete Ergebnisse: "2,4,6,8"
'i' kann abhängig von der gewünschten Schrittgröße ein beliebiges Gleitkomma oder eine ganze Zahl sein.
Andrew Whitakers Antwort ist wahr, aber Sie können jeden Ausdruck für jeden Teil verwenden.
Denken Sie daran, dass der zweite (mittlere) Ausdruck ausgewertet werden sollte, damit er mit einem booleschen true
oder false
verglichen werden kann.
Wenn ich eine for
-Schleife verwende, Ich denke daran als
for (var i = 0; i < 10; ++i) {
/* expression */
}
Als zu sein
var i = 0;
while( i < 10 ) {
/* expression */
++i;
}
for (var i = 0; i < 10; i = i + 2) {
// code here
}
for (var i = 0; i < myVar.length; i+=3) {
//every three
}
zusätzliche
Operator Example Same As
++ X ++ x = x + 1
-- X -- x = x - 1
+= x += y x = x + y
-= x -= y x = x - y
*= x *= y x = x * y
/= x /= y x = x / y
%= x %= y x = x % y
Das kannst du sicher. Andere haben richtig darauf hingewiesen, dass Sie i += 3
tun müssen. Sie können nicht das tun, was Sie gepostet haben, da Sie hier nur i + 3
hinzufügen, das Ergebnis jedoch niemals wieder i
zuweisen. i++
ist nur eine Abkürzung für i = i + 1
, ähnlich wie i +=3
eine Abkürzung für i = i + 3
.
Eine for
Schleife:
for(INIT; TEST; ADVANCE) {
BODY
}
Bedeutet folgendes:
INIT;
while (true) {
if (!TEST)
break;
BODY;
ADVANCE;
}
Sie können fast jeden Ausdruck für INIT
, TEST
, ADVANCE
und BODY
schreiben.
Beachten Sie, dass die ++
Operatoren und Varianten Operatoren mit Nebenwirkungen sind (man sollte versuchen, sie zu vermeiden, wenn Sie sie nicht wie i+=1
und dergleichen verwenden):
++i
bedeuteti+=1; return i
i++
bedeutetoldI=i; i+=1; return oldI
Beispiel:
> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]