最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript infinite loop error in my array - Stack Overflow

programmeradmin0浏览0评论

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
Add a ment  | 

5 Answers 5

Reset to default 4

I 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)
发布评论

评论列表(0)

  1. 暂无评论