Может ли цикл for увеличиваться/уменьшаться более чем на один?
есть ли другие способы увеличить a for
цикл в Javascript, кроме i++
и ++i
? Например, я хочу увеличить на 3 вместо одного.
for (var i = 0; i < myVar.length; i+3) {
//every three
}
7 ответов:
использовать
+=
оператор присваивания:for (var i = 0; i < myVar.length; i += 3) {
технически, вы можете поместить любое выражение, которое вы хотите в окончательное выражение цикла for, но оно обычно используется для обновления переменной счетчика.
для получения дополнительной информации о каждом шаге цикла for,проверьте статью MDN.
A
for
петли: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
.
for (var i = 0; i < myVar.length; i+=3) { //every three }
дополнительные
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
последняя часть тернарного оператора позволяет задать размер шага приращения. Например, i++ означает приращение на 1. i+=2-это то же самое, что i=i+2,... так далее. пример:
let val= []; for (let i = 0; i < 9; i+=2) { val = val + i+","; } console.log(val);
ожидаемые результаты: "2,4,6,8"
" Я " может быть любой плавающей точкой или целое число в зависимости от желаемого размера шага.