0

这是我正在编写 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);

它应该警告数组中的最大数字,但它似乎陷入了无限循环。

4

5 回答 5

4

我想你想要

for (var i = 0; i < array.length; i++){
    if ( array[i] > largest) {
        largest = array[i];
    }
}

基本上你是说“如果i大于 0,则设置i为 0”,这将导致i永远在 0 和 1 之间交替。

于 2013-03-20T23:04:24.693 回答
3
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);
于 2013-03-20T23:04:34.060 回答
2

我想你的意思是。

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);
于 2013-03-20T23:04:30.980 回答
1

i每次找到新的 时,您都会重置 的值largest,以便您拥有无限循环。此行使您的循环无限:

i = largest;
于 2013-03-20T23:04:54.730 回答
0

您可以使用找到数组的最大值

Math.max.apply(null, array)
于 2013-03-20T23:09:06.340 回答