我正在阅读关于JavaScript的W3Schools教程,我只是想知道这个findMax()函数:
function findMax() {
var i;
var max = -Infinity;
for (i = 0, i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
我理解&#39;我&#39;是一个计数器,函数会一直计算,并且计数增加1.我不明白 - 如何创建if语句(arguments [i]&gt; max)...得到findMax()函数中的最大数字?为什么将i传入if语句会给出最大数字?
答案 0 :(得分:2)
在该特定代码行中,循环使用arguments数组检查每个值,以查看它是否高于max
中保存的当前最高值。如果不是,那么它将继续下一个。如果是,则将max
更改为新的最高值。一旦循环检查了arguments
数组中的每个值,该函数就会返回最高值(max
)。
答案 1 :(得分:0)
if
语句并不直接查看i的值。相反,它用作数组arguments
中特定值的索引
每当您发现一个值高于您已经看到的所有值时,就意味着这是新的最大值。
答案 2 :(得分:0)
您似乎在考虑将max
与i
进行比较。事实并非如此。 i
用于遍历arguments
。
让我们说你findMax
就像这样findMax(1, 2, 3, 4, 5)
。然后arguments
等于[1, 2, 3, 4, 5]
。
然后,你的for循环将迭代arguments
的每个元素。
if (arguments[0] > max)
与Is 1&gt;相同-无穷? (是)if (arguments[1] > max)
与Is 2&gt;相同1? (是)if (arguments[2] > max)
与Is 3&gt;相同2? (是)if (arguments[3] > max)
与Is 4&gt;相同3? (是)if (arguments[4] > max)
与Is 5&gt;相同4? (是)这给你5个最大值