我正在尝试编写一个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);
我正在尝试编写一个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);
好吧,@elclanrs 已经在评论中说过了,但是......
您可以使用Math.max
,它将不同数量的数字作为参数。但是Math.max
不将数组作为参数,因此我们使用Function.prototype.apply
将数组中的每个元素作为单独的参数传递。
Math.max.apply(Math, [3, 6, 2, 56, 32, 5, 89, 32]);
注意:apply 的第一个参数是执行函数时将设置上下文对象的对象。换句话说,它指定 的值this
。在这种情况下,它可能是null
并且不会有任何区别。
至于您的初始代码,您有一些语法错误,您应该检查您的代码。
就像@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
将 for 循环更改为:
for (var i = 0; i < array.length; i++ ) {
@plalx 是对的,还有一个问题:
largest = array[i]);
有一个不必要的右括号“)”应该被删除。应用这两个更改 - 代码将起作用。