this is the code I am writing atm:
var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = 0;
for (var i = 0; i < array.length; i++){
if ( i > largest) {
i = largest;
}
}
console.log(largest);
It should be alerting the largest number in the array, but it seems to be stuck in an infinite loop.
this is the code I am writing atm:
var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = 0;
for (var i = 0; i < array.length; i++){
if ( i > largest) {
i = largest;
}
}
console.log(largest);
It should be alerting the largest number in the array, but it seems to be stuck in an infinite loop.
Share Improve this question asked Mar 20, 2013 at 23:02 user1877731user1877731 356 bronze badges 3- 2 you shouldn't change i! – mr.VVoo Commented Mar 20, 2013 at 23:03
- never change i in a for loop, and you are not doing anything with the array in the loop – OJay Commented Mar 20, 2013 at 23:05
-
largest = i > largest ? i : largest;
– adeneo Commented Mar 20, 2013 at 23:07
5 Answers
Reset to default 4I think you want
for (var i = 0; i < array.length; i++){
if ( array[i] > largest) {
largest = array[i];
}
}
Basically you are saying "if i
is greater than 0, set i
to 0", which will cause i
to alternate between 0 and 1 forever.
var arr = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = arr[0];
for (var i = 0; i < array.length; i++){
if ( arr[i] > largest) {
largest = arr[i];
}
}
console.log(largest);
I think you meant.
var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = array[0];
for (var i = 1; i < array.length; i++){
if ( array[i] > largest) {
largest = array[i];
}
}
console.log(largest);
You are resetting the value of i
every time you find a new largest
, so that you have the infinite loop. This line makes your loop infinite:
i = largest;
You can find max value of array using
Math.max.apply(null, array)