Zijn er naast ++i
en i++
nog andere manieren om een ++i
-lus in Javascript te verhogen? Ik wil bijvoorbeeld verhogen met 3 in plaats van één.
for (var i = 0; i < myVar.length; i+3) {
//every three
}
Antwoord 1, autoriteit 100%
Gebruik de +=
toewijzing operator:
for (var i = 0; i < myVar.length; i += 3) {
Technisch gezien kunt u elke gewenste uitdrukking in de laatste uitdrukking van de for-lus plaatsen, maar deze wordt meestal gebruikt om de tellervariabele bij te werken.
Voor meer informatie over elke stap van de for-lus, controleer uit het MDN-artikel.
Antwoord 2, autoriteit 4%
Een ++i
-lus:
for(INIT; TEST; ADVANCE) {
BODY
}
Betekent het volgende:
INIT;
while (true) {
if (!TEST)
break;
BODY;
ADVANCE;
}
Je kunt bijna elke uitdrukking schrijven voor INIT
, TEST
, ADVANCE
en BODY
.
Houd er rekening mee dat de ++
-operators en varianten operatoren zijn met bijwerkingen (men moet proberen ze te vermijden als u ze niet gebruikt, zoals i+=1
en dergelijke):
i++
betekenti+=1; return i
++i
betekentoldI=i; i+=1; return oldI
Voorbeeld:
> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]
Antwoord 3, autoriteit 3%
for (var i = 0; i < 10; i = i + 2) {
// code here
}
Antwoord 4, autoriteit 2%
Andrew Whitakers antwoord is waar, maar je kunt elke uitdrukking voor elk deel gebruiken.
Onthoud dat de tweede (middelste) expressie moet evalueren, zodat deze kan worden vergeleken met een boolean true
of false
.
Als ik een ++i
gebruik loop, ik zie het als
for (var i = 0; i < 10; ++i) {
/* expression */
}
als zijnde
var i = 0;
while( i < 10 ) {
/* expression */
++i;
}
Antwoord 5
for (var i = 0; i < myVar.length; i+=3) {
//every three
}
aanvullend
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
Antwoord 6
Dat kan je zeker. Anderen hebben er terecht op gewezen dat u i += 3
moet doen. Je kunt niet doen wat je hebt gepost, want het enige wat je hier doet is i + 3
toevoegen, maar het resultaat nooit teruggeven aan i
. ++i
is slechts een afkorting voor i = i + 1
, op dezelfde manier is i +=3
een afkorting voor i = i + 3
.
Antwoord 7
Met het laatste deel van de ternaire operator kunt u de stapgrootte specificeren. i++ betekent bijvoorbeeld verhogen met 1. i+=2 is hetzelfde als i=i+2,… etc.
Voorbeeld:
let val= [];
for (let i = 0; i < 9; i+=2) {
val = val + i+",";
}
console.log(val);
Verwachte resultaten: “2,4,6,8”
‘i’ kan elk zwevend punt of geheel getal zijn, afhankelijk van de gewenste stapgrootte.
Antwoord 8
Hiervoor is een operator. Als ik bijvoorbeeld een variabele i met 3 wil veranderen, dan:
var someValue = 9;
var Increment = 3;
for(var i=0;i<someValue;i+=Increment){
//do whatever
}