Are there other ways to increment a for
loop in Javascript besides i++
and ++i
? For example, I want to increment by 3 instead of one.
for (var i = 0; i < myVar.length; i+3) {
//every three
}
Are there other ways to increment a for
loop in Javascript besides i++
and ++i
? For example, I want to increment by 3 instead of one.
for (var i = 0; i < myVar.length; i+3) {
//every three
}
Use the +=
assignment operator:
for (var i = 0; i < myVar.length; i += 3) {
Technically, you can place any expression you'd like in the final expression of the for loop, but it is typically used to update the counter variable.
For more information about each step of the for loop, check out the MDN article.
i+3
doesn't work. –
Trudy i+3
? –
Fetid i+3
does not change the value of i
–
Vague i++
and i--
simpletons as of today, which is a shame, since I thought only W3Schools stick to the essential for the simple minded. Hence the absolutely valid question here on SO. –
Micamicaela A for
loop:
for(INIT; TEST; ADVANCE) {
BODY
}
Means the following:
INIT;
while (true) {
if (!TEST)
break;
BODY;
ADVANCE;
}
You can write almost any expression for INIT
, TEST
, ADVANCE
, and BODY
.
Do note that the ++
operators and variants are operators with side-effects (one should try to avoid them if you are not using them like i+=1
and the like):
++i
means i+=1; return i
i++
means oldI=i; i+=1; return oldI
Example:
> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]
for (var i = 0; i < 10; i = i + 2) {
// code here
}
for (var i = 0; i < 10; i+=2)
, because i=i+2
is equal to i+=2
–
Ductile Andrew Whitaker's answer is true, but you can use any expression for any part.
Just remember the second (middle) expression should evaluate so it can be compared to a boolean true
or false
.
When I use a for
loop, I think of it as
for (var i = 0; i < 10; ++i) {
/* expression */
}
as being
var i = 0;
while( i < 10 ) {
/* expression */
++i;
}
for (var i = 0; i < myVar.length; i+=3) {
//every three
}
additional
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
You certainly can. Others have pointed out correctly that you need to do i += 3
. You can't do what you have posted because all you are doing here is adding i + 3
but never assigning the result back to i
. i++
is just a shorthand for i = i + 1
, similarly i +=3
is a shorthand for i = i + 3
.
There is an operator just for this. For example, if I wanted to change a variable i by 3 then:
var someValue = 9;
var Increment = 3;
for(var i=0;i<someValue;i+=Increment){
//do whatever
}
var someValue = 3;
var Increment = 3;
for(var i=9;i>someValue;i+=Increment){
//do whatever
}
For those who are looking to increment pair of numbers (like 1-2 to 3-4):
Solution one:
//initial values
var n_left = 1;
var n_right = 2;
for (i = 1; i <= 5; i++) {
console.log(n_left + "-" + n_right);
n_left =+ n_left+2;
n_right =+ n_right+2;
}
//result: 1-2 3-4 5-6 7-8 9-10
Solution two:
for (x = 0; x <= 9; x+=2) {
console.log((x+1) + "-" + (x+2));
}
//result: 1-2 3-4 5-6 7-8 9-10
The last part of the ternary operator allows you to specify the increment step size. For instance, i++ means increment by 1. i+=2 is same as i=i+2,... etc. Example:
let val= [];
for (let i = 0; i < 9; i+=2) {
val = val + i+",";
}
console.log(val);
Expected results: "2,4,6,8"
'i' can be any floating point or whole number depending on the desired step size.
© 2022 - 2024 — McMap. All rights reserved.
i++
and++i
are likei+=1
if used in the for loop declaration soi+=3
would work. – Immeshfor
loop doesn't increment anything. Your code used in thefor
statement does. It's entirely up to you how/if/where/when you want to modifyi
or any other variable for that matter. – Canteeni+=3
. – ClousemyVar.length
is infinite, right? And thanks,=+
was what I was looking for. – Trudyi
in just the same way as you would in any other part of your code. – Canteen