Maison > interface Web > js tutoriel > le corps du texte

Notes d'étude JavaScript : prendre les valeurs maximales et minimales dans un array_javascript skills

WBOY
Libérer: 2016-05-16 15:08:29
original
1265 Les gens l'ont consulté

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;
}
Copier après la connexion

Regardons un exemple :

var arr = [1,45,23,3,6,2,7,234,56];
arr.max(); // 234
Copier après la connexion

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'
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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 &#63; preValue : curValue;
})
}
var arr = [1,45,23,3,6,2,7,234,56];
arr.max(); // 234
Copier après la connexion

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 &#63; curValue : preValue;
})
}
var arr = [1,45,23,3,6,2,7,234,56];
arr.min(); // 1
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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.

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