-1

我正在尝试编写一个for循环来查找数组中的最大元素并将该元素记录到控制台。到目前为止我得到了这个,但它不起作用。任何人都可以帮忙吗?

var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = 0;

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

console.log(largest);
4

3 回答 3

0

好吧,@elclanrs 已经在评论中说过了,但是......

您可以使用Math.max,它将不同数量的数字作为参数。但是Math.max不将数组作为参数,因此我们使用Function.prototype.apply将数组中的每个元素作为单独的参数传递。

Math.max.apply(Math, [3, 6, 2, 56, 32, 5, 89, 32]);

注意:apply 的第一个参数是执行函数时将设置上下文对象的对象。换句话说,它指定 的值this。在这种情况下,它可能是null并且不会有任何区别。

至于您的初始代码,您有一些语法错误,您应该检查您的代码。

于 2013-08-20T21:42:23.137 回答
0

就像@elclanrs 说的,你想使用内置Math.max函数。你可以简单地写:

var array = [3, 6, 2, 56, 32, 5, 89, 32];
var largest = Math.max.apply(null, array);

更多信息:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/max

于 2013-08-20T21:44:33.787 回答
0

将 for 循环更改为:

for (var i = 0; i < array.length; i++ ) {

@plalx 是对的,还有一个问题:

largest = array[i]);

有一个不必要的右括号“)”应该被删除。应用这两个更改 - 代码将起作用。

于 2013-08-20T21:40:46.580 回答