JavaScript findMax()示例 - 需要解释

时间:2017-07-21 22:20:30

标签: javascript function

我正在阅读关于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语句会给出最大数字?

3 个答案:

答案 0 :(得分:2)

在该特定代码行中,循环使用arguments数组检查每个值,以查看它是否高于max中保存的当前最高值。如果不是,那么它将继续下一个。如果是,则将max更改为新的最高值。一旦循环检查了arguments数组中的每个值,该函数就会返回最高值(max)。

答案 1 :(得分:0)

if语句并不直接查看i的值。相反,它用作数组arguments中特定值的索引 每当您发现一个值高于您已经看到的所有值时,就意味着这是新的最大值。

答案 2 :(得分:0)

您似乎在考虑将maxi进行比较。事实并非如此。 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个最大值