Math.max.apply(null,arr); [重复]

问题描述 投票:-2回答:2

这个问题在这里已有答案:

如何

Math.max.apply(null, arr);

准确的工作?

假设

var arr = [45,25,4,65] ;

它会比较'null'和'45'并返回两个相邻的最大数字。 45?

比较后它会再次比较返回的数字和下一个数组编号,例如25并返回最大数量?

如何在内部完成计算?我想,这是一样的。

javascript arrays
2个回答
2
投票

apply的第一个参数是函数的this。这里没关系,因为这个函数不需要特定的this值。例如,在其他一些情况下可能很重要:

var foo = {
    b: true,
    func: function() {
        return this.b;
    }
};
var bar = { b : false }; 

foo.func(); // true
foo.func.apply(bar); // false

0
投票

它等于

 Math.max(...arr);

这等于:

 Math.max(45, 25, 4, 65);

它的内部工作方式取决于浏览器/解析器本机实现。在js中它可能是:

 Math.max = (...args) => {
   let max = - Infinity;
   for(const number of args) 
      if(number > max) max = number;
   return max;
};
© www.soinside.com 2019 - 2024. All rights reserved.