Javascript max() function for 3 numbers

2019-01-17 19:11发布

问题:

I need to find the highest number from 3 different numbers. The only thing I've found is max() but you can only use 2 numbers.

Whats the best way?

回答1:

The Math.max function can accept any arbitrary number of arguments:

Syntax:

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

Usage:

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

For example:

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

You could even use it to get the maximum value of an array of numbers with the help of apply:

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


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

If you can target ES6 (ES2015), you can also use the spread operator:

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



回答2:

In almost any language, one can use max twice:

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

As @CMS points out, JavaScript specifically allows an arbitrary number of parameters to Math.max:

Math.max(num1, num2, num3);


回答3:

Push your values into an array arr and use Math.min.apply(null, arr) or Math.max.apply(null, arr) for maximum and minimum values respectively:

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);


回答4:

Using with the new spread operator

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

for more info



回答5:

 var numbers = [2,3,1];
 numbers.sort(function(a,b){return b-a});
 console.log("max number is", numbers[0]); // max number is 3