Javascript max() function for 3 numbers
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?
Solution 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
Solution 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);
Solution 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);
Solution 4:
Using with the new spread operator
var num = [23,34,56,72,1,22];
Math.max(...num)
for more info