Maison >interface Web >js tutoriel >Notes d'étude JavaScript : prendre les valeurs maximales et minimales dans un array_javascript skills
Lecture recommandée : Notes d'étude JavaScript : Ajouter, supprimer, modifier et vérifier des tableaux
Notes d'étude JavaScript Méthode de somme de tableau
Tableau de notes d'étude JavaScript, tri aléatoire
Dans les affaires réelles, il est parfois nécessaire de récupérer la valeur maximale ou minimale d'un tableau. Cependant, les méthodes telles que arr.max() et arr.min() ne sont pas fournies dans les tableaux. Alors, est-il possible de mettre en œuvre une méthode comme celle-ci d’une autre manière ? Aujourd'hui, nous allons donc trier quelques méthodes pour extraire les valeurs maximales et minimales d'un tableau.
Obtenir la valeur maximale dans le tableau
Vous pouvez d'abord y penser :
Attribuez le premier élément du tableau à une variable et utilisez cette variable comme valeur maximale
Commencez à parcourir le tableau, en commençant par le deuxième élément et en le comparant avec le premier élément de la séquence
Si l'élément actuel est supérieur à la valeur maximale actuelle, attribuez la valeur de l'élément actuel à la valeur maximale
Passer à l'élément suivant et continuer l'étape précédente
Lorsque le parcours des éléments du tableau se termine, cette variable stocke la valeur maximale
Le code est le suivant :
Array.prototype.max = function () { // 将数组第一个元素的值赋给max var max = this[0]; // 使用for 循环从数组第一个值开始做遍历 for (var i = 1; i < this.length; i++) { // 如果元素当前值大于max,就把这个当前值赋值给max if (this[i] > max) { max = this[i]; } } // 返回最大的值 return max; }
Regardons un exemple :
var arr = [1,45,23,3,6,2,7,234,56]; arr.max(); // 234
Dans l'exemple ci-dessus, le tableau contient toutes les valeurs numériques. Alors, quel sera l'effet si le tableau ne contient pas toutes les valeurs numériques ? Testons-le d’abord :
var arr = [1,45,23,3,6,2,7,234,56,'2345','a','c']; arr.max(); // 'c'
Ce n’est pas le résultat que nous souhaitons. (Je demande une solution ici)
Grâce à notre apprentissage il y a quelque temps, nous savons tous que les performances de la boucle for sont pires que celles de forEach(), vous pouvez alors remplacer la méthode ci-dessus par la méthode forEach() :
Array.prototype.max = function (){ var max = this[0]; this.forEach (function(ele,index,arr){ if(ele > max) { max = ele; } }) return max; } var arr = [1,45,23,3,6,2,7,234,56]; arr.max(); // 234
Obtenir la valeur minimale dans le tableau
Semblable à l'idée d'obtenir la valeur maximale, nous pouvons facilement implémenter la méthode arr.min() pour obtenir la valeur minimale dans le tableau :
Array.prototype.min = function () { var min = this[0]; this.forEach(function(ele, index,arr) { if(ele < min) { min = ele; } }) return min; } var arr = [1,45,23,3,6,2,7,234,56]; arr.min(); // 1
Autres méthodes
En plus de la solution ci-dessus, il existe d'autres méthodes, telles que l'utilisation de la méthode réduire() du tableau. Rappelez-vous les connaissances apprises précédemment, la méthode réduire() peut recevoir une fonction de rappel callbackfn. Dans cette fonction de rappel, la valeur initiale du tableau (preValue) peut être comparée à l'élément de tableau actuellement traité (curValue) dans le tableau. preValue est supérieur à curValue, renvoie preValue, sinon renvoie curValue, et ainsi de suite pour obtenir la valeur maximale dans le tableau :
Array.prototype.max = function() { return this.reduce(function(preValue, curValue,index,array) { return preValue > curValue ? preValue : curValue; }) } var arr = [1,45,23,3,6,2,7,234,56]; arr.max(); // 234
De même, vous pouvez également utiliser une méthode similaire pour implémenter la méthode arr.mix() afin d'obtenir la valeur minimale dans le tableau :
Array.prototype.min = function() { return this.reduce(function(preValue, curValue,index,array) { return preValue > curValue ? curValue : preValue; }) } var arr = [1,45,23,3,6,2,7,234,56]; arr.min(); // 1
Fonctions intégrées Méthodes Math.max() et Math.min()
Pour les tableaux purement numériques, vous pouvez utiliser les fonctions intégrées Math.max() et Math.min() en JavaScript. Utilisez ces deux fonctions intégrées pour rechercher respectivement les valeurs maximales et supérieures dans un tableau. Avant d'utiliser ces deux fonctions intégrées pour obtenir les valeurs maximales et minimales d'un tableau, apprenez d'abord les fonctions Math.max() et Math.min().
Math.max()
La fonction Math.max() renvoie la valeur maximale dans un ensemble de nombres.
Math.max(1,32,45,31,3442,4); // 3442 Math.max(10, 20); // 20 Math.max(-10, -20); // -10 Math.max(-10, 20); // 20
Math.min()
La fonction Math.min() est juste l'opposé de la fonction Math.max(), qui renvoie la valeur minimale dans un ensemble de nombres :
Math.min(10,20); //10 Math.min(-10,-20); //-20 Math.min(-10,20); //-10 Math.min(1,32,45,31,3442,4); //1
Si ces fonctions n'ont pas de paramètres, le résultat est -Infini ; si un paramètre ne peut pas être converti en valeur numérique, le résultat est NaN. Le plus important est que ces deux fonctions ne peuvent pas être utilisées directement pour des tableaux de nombres. Il existe cependant des méthodes similaires.
Function.prototype.apply() vous permet d'appeler des paramètres en utilisant les tableaux this et paramètres fournis.
// 取出数组中最大值 Array.max = function( array ){ return Math.max.apply( Math, array ); }; // 取出数组中最小值 Array.min = function( array ){ return Math.min.apply( Math, array ); }; var arr = [1,45,23,3,6,2,7,234,56]; Array.max(arr); // 234 Array.min(arr); // 1
L'objet Math est également un objet et peut être écrit en utilisant des littéraux d'objet, tels que :
Array.prototype.max = function () { return Math.max.apply({},this); } Array.prototype.min = function () { return Math.min.apply({},this); } var arr = [1,45,23,3,6,2,7,234,56]; arr.max(); // 234 arr.min(); // 1
En fait, il existe un moyen plus simple. La méthode basée sur ES2015 pour implémenter cette fonctionnalité consiste à utiliser l'opérateur spread :
var numbers = [1, 2, 3, 4]; Math.max(...numbers) // 4 Math.min(...numbers) // 1
Operator ini menyebabkan nilai dalam tatasusunan dikembangkan di lokasi panggilan fungsi.
Ringkasan
Artikel ini meringkaskan beberapa kaedah untuk mengekstrak nilai maksimum dan minimum daripada tatasusunan. Kaedah ini hanya untuk tatasusunan berangka, tetapi apabila tatasusunan mengandungi jenis data lain, cara hanya mengekstrak nilai terbesar dan nilai terkecil (jika anda tahu cara melaksanakannya, sila berikan saya nasihat). Antara kaedah ini, menggunakan fungsi terbina dalam JavaScript Math.max() dan Math.min() bersama-sama dengan Function.prototype.apply() boleh mendapatkan semula nilai maksimum dan minimum dalam tatasusunan dengan mudah. Sudah tentu, kaedah paling mudah ialah menggunakan operator paparan dalam ES2015.
Ini semua tentang kaedah mendapatkan nilai maksimum dan minimum dalam tatasusunan dalam nota kajian JavaScript Jika anda mempunyai penyelesaian yang lebih baik, saya harap anda boleh berkongsi dengan kami dalam ulasan di bawah.