Necesito encontrar el número más alto de 3 números diferentes. Lo único que encontré es max() pero solo puedes usar 2 números.Función de Javascript max() para 3 números
¿Cuál es la mejor manera?
Necesito encontrar el número más alto de 3 números diferentes. Lo único que encontré es max() pero solo puedes usar 2 números.Función de Javascript max() para 3 números
¿Cuál es la mejor manera?
El Math.max la función puede aceptar cualquier número arbitrario de argumentos:
Sintaxis:
Math.max([value1[,value2[, ...]]])
Uso:
var max = Math.max(num1, num2, num3);
Por ejemplo:
alert(Math.max(1,2,3,4,5,6)); // alerts 6
Incluso se puede utilizar para obtener el valor máximo de un conjunto de números @Pascal MARTIN sugerir, con la ayuda de apply:
Array.prototype.max = function() {
return Math.max.apply(Math, this);
};
var max = [1,2,3,4,5,6].max(); // 6
en casi cualquier idioma, se puede utilizar max dos veces:
Math.max(num1, Math.max(num2, num3))
Como @CMS señala, JavaScript permite específicamente un número arbitrario de parámetros para Math.max:
Math.max(num1, num2, num3);
+1 tiene que amar la belleza de la simplicidad. –
Math.max puede aceptar cualquier número arbitrario de argumentos, consulte mi respuesta a continuación: http://stackoverflow.com/questions/1418569/javascript-max-function-for-3-numbers/1418646#1418646 – CMS
@CMS: +1 Muy bien, aprendí algo. No estoy al tanto de otro lenguaje convencional que lo haga, aunque en principio cualquier lenguaje que pueda aceptar un número variable de argumentos de funciones podría hacerlo. –
Introduzca sus valores en una matriz arr
y utilizar Math.min.apply(null, arr)
o Math.max.apply(null, arr)
para los valores máximos y mínimos respectivamente:
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 numbers = [2,3,1];
numbers.sort(function(a,b){return b-a});
console.log("max number is", numbers[0]); // max number is 3
Bien, gracias iMani! – atom
Utilización con el nuevo operador de difusión
var num = [23,34,56,72,1,22];
Math.max(...num)
Si bien este código puede responder la pregunta, proporcionar un contexto adicional sobre cómo y/o por qué resuelve el problema mejoraría el valor a largo plazo de la respuesta. – Badacadabra
@Badacadabra El valor de esta respuesta le permite escribir un código un poco menor y puede usar el "operador de extensión" Ahora debe Votar Voto Espero –
+1 No sé por qué esto no ha sucedido ha sido recogido antes y es, de lejos, la solución más simple. Si desea que funcione con una matriz, simplemente use Math.max.apply (Matemáticas, matriz) –
Parece que a Google le encanta. Estuve buscando en Google 'javascript max' 45 minutos después de que la pregunta se publicó por primera vez, y encontré esta respuesta en la primera página :-) –