JavaScript Trouver l'élément minimum ou maximum


Exemple

Si votre tableau ou objet de type tableau est numérique , c'est-à-dire si tous ses éléments sont des nombres, vous pouvez utiliser Math.min.apply ou Math.max.apply en transmettant null comme premier argument et votre tableau comme deuxième argument. .

var myArray = [1, 2, 3, 4];

Math.min.apply(null, myArray); // 1
Math.max.apply(null, myArray); // 4
6

Dans ES6, vous pouvez utiliser l'opérateur ... pour répartir un tableau et prendre l'élément minimum ou maximum.

var myArray = [1, 2, 3, 4, 99, 20];

var maxValue = Math.max(...myArray); // 99
var minValue = Math.min(...myArray); // 1

L'exemple suivant utilise une boucle for :

var maxValue = myArray[0];
for(var i = 1; i < myArray.length; i++) {
   var currentValue = myArray[i];
   if(currentValue > maxValue) {
      maxValue = currentValue;
   }
}
5.1

L'exemple suivant utilise Array.prototype.reduce() pour trouver le minimum ou le maximum:

var myArray = [1, 2, 3, 4];

myArray.reduce(function(a, b) {
  return Math.min(a, b);
}); // 1

myArray.reduce(function(a, b) {
  return Math.max(a, b);
}); // 4
6

ou en utilisant les fonctions de flèche:

myArray.reduce((a, b) => Math.min(a, b)); // 1
myArray.reduce((a, b) => Math.max(a, b)); // 4
5.1

Pour généraliser la version reduce , nous devions passer une valeur initiale pour couvrir le cas de la liste vide:

function myMax(array) {
  return array.reduce(function(maxSoFar, element) {
    return Math.max(maxSoFar, element);
  }, -Infinity);
}

myMax([3, 5]);             // 5
myMax([]);                 // -Infinity
Math.max.apply(null, []);  // -Infinity

Pour plus de détails sur la manière d’utiliser correctement reduce voir Réduire les valeurs .