用于3个数字的Javascript max()函数

用于3个数字的Javascript max()函数,javascript,math,max,Javascript,Math,Max,我需要从3个不同的数字中找出最大的数字。我唯一找到的是max(),但只能使用2个数字 最好的方法是什么?在几乎任何语言中,都可以使用max两次: Math.max(num1, Math.max(num2, num3)) 正如@CMS指出的,JavaScript特别允许Math.max使用任意数量的参数: Math.max(num1, num2, num3); 该函数可以接受任意数量的参数: 语法: Math.max([value1[,value2[, ...]]]) 用法: var ma

我需要从3个不同的数字中找出最大的数字。我唯一找到的是max(),但只能使用2个数字


最好的方法是什么?

在几乎任何语言中,都可以使用max两次:

Math.max(num1, Math.max(num2, num3))
正如@CMS指出的,JavaScript特别允许Math.max使用任意数量的参数:

Math.max(num1, num2, num3);
该函数可以接受任意数量的参数:

语法:

Math.max([value1[,value2[, ...]]]) 
用法:

var max = Math.max(num1, num2, num3);
例如:

console.log(Math.max(1,2,3,4,5,6)); //  6
您甚至可以使用它在以下帮助下获得数字数组的最大值:

函数maxOfArray(数组){
返回Math.max.apply(数学,数组);
}
设数组=[1,2,3,4,5,6];

console.log(maxOfArray(array));//6
将您的值推入数组
arr
并分别使用
Math.min.apply(null,arr)
Math.max.apply(null,arr)
获取最大值和最小值:

var arr = [];
arr.push(value1);
arr.push(value2);
arr.push(value3);

var minValue = Math.min.apply(null, arr);
var maxValue = Math.max.apply(null, arr);

与新的扩展运算符一起使用

var num = [23,34,56,72,1,22]; 
Math.max(...num)

Math.max可以接受任意数量的参数,请参见下面我的答案:@CMS:+1非常酷,我学到了一些东西。我不知道还有哪种主流语言能做到这一点,尽管原则上任何能够接受可变数量函数参数的语言都可以。17人们喜欢这个答案,但有2人投了反对票。不幸的是,两人都没有留下理由。如果我们能理解这些反对票的话,那就太好了,这样我们大家都可以学习…+1我不知道为什么以前没有人注意到这一点,这是迄今为止最简单的解决方案。如果你想让它与数组一起工作,只需使用Math.max.apply(Math,array)谷歌似乎非常喜欢。在问题第一次发布45分钟后,我在谷歌上搜索“javascript max”,在第一页找到了这个答案:-)虽然这段代码可能会回答这个问题,提供关于如何和/或为什么解决问题的附加上下文将提高答案的长期价值。@Badacadabra此答案的价值您可以少写一点代码并使用“扩展运算符”,现在您应该投票了,我希望
var num = [23,34,56,72,1,22]; 
Math.max(...num)