Maison > interface Web > js tutoriel > Pour trouver la valeur maximale d'un tableau en js, quelle méthode utilisez-vous, intelligente ou stupide ?

Pour trouver la valeur maximale d'un tableau en js, quelle méthode utilisez-vous, intelligente ou stupide ?

yulia
Libérer: 2018-09-08 17:24:23
original
1824 Les gens l'ont consulté

La raison de la rédaction de cet article

J'utilise rarement des algorithmes dans les projets sur lesquels je travaille actuellement, donc naturellement je ne suis pas familier avec cet aspect. Dans un codage récent, j'ai rencontré le besoin d'obtenir la valeur maximale d'un tableau. A cette époque, j'ai inconsciemment pensé à la fonction sort() de js. Maintenant que j'y pense, c'est vraiment un "péché". à ce moment-là, je me sentais un peu fier dans mon cœur : "Eh bien, j'utilise la méthode intégrée de js pour résoudre un problème qui doit généralement être résolu en utilisant un algorithme de tri. Le code est court, il n'est pas nécessaire d'écrire des maux de tête pour le parcours et la comparaison, et la lisibilité est bonne ". Le drame intérieur est lourd, non ? Ahem, hé, je suis encore jeune et paresseux. La fonction de tri endogène js utilise également le tri. Pour plus de détails, voyez comment la fonction js endogène sort() est implémentée sur segmentfault.

Magie et astuces
Il existe de nombreuses "techniques et astuces" en js, et parfois j'utilise souvent délibérément ces "techniques et astuces" (attention, je ne suis pas opposé à l'utiliser, mais parfois ce n'est pas nécessaire). Par exemple, pour trouver la valeur maximale dans un tableau, Array in js n'a pas de méthode native pour trouver la valeur maximale, mais Math en a :

Math.max(22, 79, 33) // 79
Copier après la connexion

Si vous souhaitez utiliser un tableau, vous pouvez utilisez-le également :

 var arr = [22, 79, 33];
 Math.max.apply(null, arr); // 79
Copier après la connexion

Ou au lieu d'utiliser la méthode apply, vous pouvez convertir le tableau en chaîne et utiliser la méthode eval() pour exécuter le code js épissé dans "Math.max( num1, num2, num3)":

 var max = eval("Math.max(" + arr.join(',') + ")"); // 79
Copier après la connexion

Si vous n'y avez pas pensé, vous pouvez simplement utiliser la fonction sort() que j'ai mentionnée ci-dessus :

var arr = [22, 79, 33];
 var getMax = function(arr) {
   var copyArr = JSON.parse(JSON.stringify(arr));
 var len = copyArr.length;
     copyArr.sort();
    return copyArr[len - 1];
 };
 getMax(arr); // 79
Copier après la connexion

Méthode stupide
Voyez maintenant, vous devez être étonné par la puissance de js, mais parfois trop compter sur ses "merveilleuses compétences" vous mettra dans un état "d'arrogance". js ne signifie pas que votre propre niveau de codage est fort. Alors revenez à l'essentiel et utilisez des méthodes stupides pour exercer votre puissance cérébrale :

 var arr = [22, 79, 33];
  var getMax = function(arr) {
     var len = arr.length,
         max = arr[0]; 
     while (len--) {
         if (max >= arr[len]) {
            continue;
         }
       max = arr[len];
    } 
    return max;
 };
 getMax(arr); // 79
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal