Question

Je dois trouver le nombre le plus élevé parmi 3 nombres différents. La seule chose que j'ai trouvée est max () mais vous ne pouvez utiliser que 2 nombres.

Quel est le meilleur moyen?

Était-ce utile?

La solution

La fonction Math.max peut accepter n'importe quel type d'arbitrage. nombre d'arguments:

Syntaxe:

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

Utilisation:

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

Par exemple:

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

Vous pouvez même l'utiliser pour obtenir la valeur maximale d'un tableau de nombres à l'aide de s'appliquent :

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


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

Si vous pouvez cibler ES6 (ES2015), vous pouvez également utiliser opérateur de diffusion :

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

Autres conseils

Dans presque toutes les langues, on peut utiliser deux fois maximum:

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

Comme le souligne @CMS, JavaScript autorise spécifiquement un nombre arbitraire de paramètres dans Math.max:

Math.max(num1, num2, num3);

Poussez vos valeurs dans un tableau arr et utilisez Math.min.apply (null, arr) ou Math.max.apply (null, arr) pour les valeurs maximales et minimales respectivement:

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

Utilisation avec le nouvel opérateur de propagation

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

pour plus d'informations

 var numbers = [2,3,1];
 numbers.sort(function(a,b){return b-a});
 console.log("max number is", numbers[0]); // max number is 3
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top