I'm trying to make this loop work in order to get the multiples of 5 that are below 1000 in an array (yeah, just getting started with euler), but it keeps crashing my console:
var multiploCincoArray = [];
for(i = 1, r = i * 5; r < 1000; i++) {
multiploCincoArray.push(r);
}
console.log(multiploCincoArray);
I know there's something wrong with the stopping condition but i can't seem to find it.
I know i can do this too:
var multiploCincoArray = [];
for(i = 1; i <= 199 ; i++) {
multiploCincoArray.push(5 * i);
}
console.log(multiploCincoArray);
but i want to follow the path shown in the first script (if possible)...
5 Answers 5
You could move the calculation into the conditional part.
var multiploCincoArray = [];
for (var i = 1, r; r = i * 5, r < 1000; i++) {
multiploCincoArray.push(r);
}
console.log(multiploCincoArray);
Comments
Try that :
var multiploCincoArray = [];
for(i = 5; i <= 1000; i = i + 5) {
multiploCincoArray.push(i);
}
console.log(multiploCincoArray);
Comments
Your approach doesn't seem right imo.
Firstly start with a single variable i, and iterate till 1000.
for (var i=1; i<1000; i++)
check if the i is a multiple of 5 via i%5, if it is then push the value in an array.
var array = [];
for (var i=1; i<1000; i++) {
if (i%5 === 0) {
array.push(i);
}
}
console.log(array);
2 Comments
for(i = 1, r = i * 5; r < 1000; i++){
Is the same as:
i = 1, r = i * 5
while(r < 1000) i++;
So actually you set r just once (to 5), then you increase i as long as r is smaller than 1000, but as r doesn't change the loop is infinite and crashes your browser.
You might just do:
for(let i = 5; i < 1000; i += 5)
1 Comment
r wasn't changing!.On the right track but condition in the wrong place. Change for(i = 1, r = i * 5; r < 1000; i++) to for(i = 1, r=5; r < 1000; r=i*5,i++)
Should use let i and let r for scope but I left it out for clarity.
Comments
Explore related questions
See similar questions with these tags.