webentwicklung-frage-antwort-db.com.de

Kann eine for-Schleife um mehr als eine erhöht oder verringert werden?

Gibt es noch andere Möglichkeiten, eine for-Schleife in Javascript zu erhöhen, außer i++ und ++i? Ich möchte zum Beispiel um 3 anstatt um eins erhöhen. 

for (var i = 0; i < myVar.length; i+3) {
   //every three
}
81
brentonstrine

Verwenden Sie den +=Zuweisungsoperator :

for (var i = 0; i < myVar.length; i += 3) {

Technisch gesehen können Sie einen beliebigen Ausdruck in den endgültigen Ausdruck der for-Schleife einfügen, der jedoch normalerweise zum Aktualisieren der Zählervariable verwendet wird.

Weitere Informationen zu jedem Schritt der for-Schleife finden Sie in im MDN-Artikel .

184
Andrew Whitaker

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 Nebeneffekten sind (Sie sollten versuchen, sie zu vermeiden, wenn Sie sie nicht wie i+=1 und dergleichen verwenden):

  • ++i bedeutet i+=1; return i
  • i++ bedeutet oldI=i; i+=1; return oldI

Beispiel:

> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]
11
ninjagecko
for (var i = 0; i < 10; i = i + 2) {
    // code here
}​
7
Adil Malik

Die Antwort von Andrew Whitaker 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, denke ich daran

for (var i = 0; i < 10; ++i) {
    /* expression */
}

als sein

var i = 0;
while( i < 10 ) {
    /* expression */
    ++i;
}
5
Paul S.

Sie können es sicherlich. Andere haben richtig darauf hingewiesen, dass Sie i += 3 tun müssen. Sie können das, was Sie gepostet haben, nicht tun, da Sie hier lediglich i + 3 hinzufügen, das Ergebnis jedoch niemals i zurückgeben. i++ ist nur eine Abkürzung für i = i + 1, ähnlich ist i +=3 eine Abkürzung für i = i + 3.

1
Sudesh Banskota
for (var i = 0; i < myVar.length; i+=3) {
   //every three
}

zusätzlich  

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
0
Jayantha