Las funciones Math.max() and Math.min() encontrar el valor máximo y mínimo de los argumentos, respectivamente.

Math.max(1, 2, 3, 4); // 4
Math.min(1, 2, 3, 4); // 1

Estas funciones no funcionarán como tal con arrays de números. Sin embargo, hay algunas maneras de evitar esto.

Function.prototype.apply() le permite llamar a una función con un determinado valor de this y un array de argumentos.

var numbers = [1, 2, 3, 4];
Math.max.apply(null, numbers) // 4
Math.min.apply(null, numbers) // 1

Pasando el array numbers como el segundo argumento de apply() resulta en la función invocados con todos los valores en le array como parámetros.

Una manera sencilla con ES2015 de conseguir esto spread operator.

var numbers = [1, 2, 3, 4];
Math.max(...numbers) // 4
Math.min(...numbers) // 1

Este operador hace que los valores del array a ser ampliado, o “spread”, dentro de argumentos de la función.