Существуют ли другие способы увеличения цикла for
в Javascript, кроме i++
и ++i
? Например, я хочу увеличить на 3 вместо одного.
for (var i = 0; i < myVar.length; i+3) {
//every three
}
Существуют ли другие способы увеличения цикла for
в Javascript, кроме i++
и ++i
? Например, я хочу увеличить на 3 вместо одного.
for (var i = 0; i < myVar.length; i+3) {
//every three
}
Используйте оператор присваивания +=
:
for (var i = 0; i < myVar.length; i += 3) {
Технически вы можете разместить любое выражение, которое вы хотите в конечном выражении цикла for, но оно обычно используется для обновления переменной счетчика.
Для получения дополнительной информации о каждом шаге цикла for просмотрите статью MDN.
for (var i = 0; i < 10; i=i+2) {
// code here
}
A for
loop:
for(INIT; TEST; ADVANCE) {
BODY
}
Означает следующее:
INIT;
while (true) {
if (!TEST)
break;
BODY;
ADVANCE;
}
Вы можете написать почти любое выражение для INIT
, TEST
, ADVANCE
и BODY
.
Обратите внимание, что операторы и варианты ++
являются операторами с побочными эффектами (следует избегать их, если вы не используете их как i+=1
и т.п.):
++i
означает i+=1; return i
i++
означает oldI=i; i+=1; return oldI
Пример:
> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]
Ответ Эндрю Уайткера верен, но вы можете использовать любое выражение для любой части.
Просто помните, что второе (среднее) выражение должно оцениваться, поэтому его можно сравнить с логическим true
или false
.
Когда я использую цикл for
, я думаю об этом как
for (var i = 0; i < 10; ++i) {
/* expression */
}
как
var i = 0;
while( i < 10 ) {
/* expression */
++i;
}
Вы, конечно, можете. Другие правильно указали, что вам нужно сделать i += 3
. Вы не можете делать то, что вы разместили, потому что все, что вы делаете, добавляет i + 3
, но не возвращает результат обратно в i
. i++
является просто сокращением для i = i + 1
, аналогично i +=3
является сокращением для i = i + 3
.