45

我需要从 3 个不同的数字中找到最高的数字。我发现的唯一东西是 max() 但你只能使用 2 个数字。

最好的方法是什么?

4

6 回答 6

115

Math.max函数可以接受任意数量的参数:

句法:

Math.max([value1[,value2[, ...]]]) 

用法:

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

例如:

console.log(Math.max(1,2,3,4,5,6)); //  6

您甚至可以在apply的帮助下使用它来获取数字数组的最大值:

function maxOfArray(array) {
  return Math.max.apply(Math, array);
}


let array = [1,2,3,4,5,6];
console.log(maxOfArray(array)); // 6

如果您可以针对 ES6 (ES2015),您还可以使用扩展运算符

let array = [1,2,3,4,5,6];
let max = Math.max(...array);
console.log(max); // 6

于 2009-09-13T19:33:03.417 回答
21

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

Math.max(num1, Math.max(num2, num3))

正如@CMS 指出的那样,JavaScript 特别允许 Math.max 的任意数量的参数:

Math.max(num1, num2, num3);
于 2009-09-13T18:58:15.573 回答
2

将您的值推入一个数组arr并分别使用Math.min.apply(null, arr)orMath.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);
于 2013-05-29T02:31:47.210 回答
1

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

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

了解更多信息

于 2017-06-12T10:59:40.370 回答
0

让数组 = [1,2,3,4,5,6];

let array = [1,2,3,4,5,6];
let largest = 0;
for(let i = 0; i<=largest; i++){
(largest<array[i]? largest = array[i]:0)
}
console.log(largest);

于 2021-09-03T06:28:32.070 回答
-1
 var numbers = [2,3,1];
 numbers.sort(function(a,b){return b-a});
 console.log("max number is", numbers[0]); // max number is 3
于 2013-12-11T09:26:03.483 回答