【问题标题】:Javascript function parameters as an array [duplicate]作为数组的Javascript函数参数[重复]
【发布时间】:2015-12-02 11:09:48
【问题描述】:

例如,我想要一个数字数组中的最大数字。

var numbers = [54,34,76,33,87,12,76,92,44,93,23];

我希望能够在不使用eval 的情况下使用Math.max() 来找到最大的数字。

所以,我希望能够将参数数组传递给函数。数组的长度可以改变,所以Math.max(numbers[0],numbers[1]...) 不起作用。

有什么办法可以做到吗?

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    您可以使用.apply() 方法:

    var max = Math.max.apply(Math, numbers);
    

    .apply() 方法是Function.prototype 的属性,因此可用于所有函数实例。它的第一个参数用作要调用的函数中this 的值,第二个参数应该是一个数组,将用作参数值的列表。

    在上面的示例中,我使用Math 作为this 的值,因为这就是thisMath.max 的典型调用中的值,但是(至少在我安装的Firefox 中)Math.max.apply(null, numbers);也可以。

    【讨论】:

    • 另外,如果你使用 JavaScript Harmony ES6,你可以使用扩展运算符,查看我最近的answer
    猜你喜欢
    • 2014-12-23
    • 1970-01-01
    • 2016-10-09
    • 2020-04-17
    • 2020-12-04
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    相关资源
    最近更新 更多