2013-08-20 81 views
-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); 
+7

'Math.max.apply(0,数组)// 89' – elclanrs

+4

'0 <100' ????? – alfasin

+0

或Math.max(0,150,30,20,38); < - 如果可以将它们作为参数,则不需要应用或循环。 – cocco

回答

0

变化的for循环到:

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

@plalx是正确的,还有一个问题,在该行:

largest = array[i]); 

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

+0

这不是唯一的问题= P – plalx

+0

@plalx你是对的 - 还有一个问题,请参阅更新的答案。 – alfasin

0

好,@elclanrs表示,在注释中已经,但是...

您可以使用Math.max,这需要各种数目的数字作为参数。但是Math.max不会将数组作为参数,所以我们使用Function.prototype.apply来传递数组中的每个元素作为单独的参数。

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

注:申请的第一个参数是到的上下文对象将执行该功能时可以设置的对象。换句话说,它指定了this的值。在这种情况下,它可能是null,它不会有任何区别。

至于你的初始代码,你有一些语法错误,你应该lint你的代码。