Heim > Web-Frontend > js-Tutorial > Anmerkungen zur JavaScript-Studie: Erfassen der Maximal- und Minimalwerte in einem Array_Javascript-Fähigkeiten

Anmerkungen zur JavaScript-Studie: Erfassen der Maximal- und Minimalwerte in einem Array_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:08:29
Original
1298 Leute haben es durchsucht

Empfohlene Lektüre: JavaScript-Studiennotizen: Hinzufügen, Löschen, Ändern und Überprüfen von Arrays

JavaScript Study Notes Array Sum Method

JavaScript Study Notes Array Random Sorting

In der Praxis ist es manchmal notwendig, den Maximal- oder Minimalwert in einem Array abzurufen. Methoden wie arr.max() und arr.min() werden jedoch nicht in Arrays bereitgestellt. Ist es also möglich, eine solche Methode auf andere Weise zu implementieren? Deshalb werden wir heute einige Methoden zum Extrahieren der Maximal- und Minimalwerte in einem Array klären.

Ermitteln Sie den Maximalwert im Array

Sie können zuerst darüber nachdenken:

Weisen Sie das erste Element im Array einer Variablen zu und verwenden Sie diese Variable als Maximalwert;

Beginnen Sie mit dem Durchlaufen des Arrays, beginnend beim zweiten Element und vergleichen Sie es mit dem ersten Element in der Reihenfolge


Wenn das aktuelle Element größer als der aktuelle Maximalwert ist, weisen Sie den aktuellen Elementwert dem Maximalwert zu


Gehen Sie zum nächsten Element und fahren Sie mit dem vorherigen Schritt fort


Wenn der Durchlauf des Array-Elements endet, speichert diese Variable den Maximalwert

Der Code lautet wie folgt:

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;
}
Nach dem Login kopieren
Sehen wir uns ein Beispiel an:

var arr = [1,45,23,3,6,2,7,234,56];
arr.max(); // 234
Nach dem Login kopieren
Im obigen Beispiel enthält das Array alle numerischen Werte. Welche Auswirkung hat es also, wenn das Array nicht alle numerischen Werte enthält? Testen wir es zuerst:

var arr = [1,45,23,3,6,2,7,234,56,'2345','a','c'];
arr.max(); // 'c'
Nach dem Login kopieren
Dies ist nicht das Ergebnis, das wir wollen. (Ich bitte hier um eine Lösung)

Durch Lernen vor einiger Zeit wissen wir alle, dass die Leistung der for-Schleife schlechter ist als die von forEach(). Dann können Sie die obige Methode in die forEach()-Methode ändern:

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
Nach dem Login kopieren

Ermitteln Sie den Mindestwert im Array

Ähnlich wie bei der Idee, den Maximalwert zu erhalten, können wir die Methode arr.min() einfach implementieren, um den Minimalwert im Array zu erhalten:

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
Nach dem Login kopieren

Andere Methoden

Zusätzlich zu der oben genannten Lösung gibt es noch andere Methoden, z. B. die Verwendung der Methode „reduce()“ des Arrays. Erinnern Sie sich an das zuvor erlernte Wissen: Die Methode Reduce () kann eine Rückruffunktion callbackfn empfangen. In dieser Rückruffunktion kann der Anfangswert im Array (preValue) mit dem aktuell verarbeiteten Array-Element (curValue) im Array If verglichen werden Wenn preValue größer als curValue ist, geben Sie preValue zurück, andernfalls geben Sie curValue zurück usw., um den Maximalwert im Array zu erhalten:

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
Nach dem Login kopieren
In ähnlicher Weise können Sie auch eine ähnliche Methode verwenden, um die Methode arr.mix() zu implementieren, um den Mindestwert im Array zu erhalten:

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
Nach dem Login kopieren

Eingebaute Funktionsmethoden Math.max() und Math.min()

Für rein numerische Arrays können Sie die integrierten Funktionen Math.max() und Math.min() in JavaScript verwenden. Verwenden Sie diese beiden integrierten Funktionen, um den Maximal- bzw. Spitzenwert in einem Array zu ermitteln. Bevor Sie diese beiden integrierten Funktionen verwenden, um die Maximal- und Minimalwerte eines Arrays zu ermitteln, lernen Sie zunächst die Funktionen Math.max() und Math.min() kennen.

Math.max()

Die Funktion Math.max() gibt den Maximalwert in einer Reihe von Zahlen zurück.

Math.max(1,32,45,31,3442,4); // 3442
Math.max(10, 20); // 20
Math.max(-10, -20); // -10
Math.max(-10, 20); // 20
Nach dem Login kopieren

Math.min()

Die Funktion Math.min() ist genau das Gegenteil der Funktion Math.max(), die den Mindestwert in einer Reihe von Zahlen zurückgibt:

Math.min(10,20); //10
Math.min(-10,-20); //-20
Math.min(-10,20); //-10
Math.min(1,32,45,31,3442,4); //1
Nach dem Login kopieren
Wenn diese Funktionen keine Parameter haben, ist das Ergebnis -Infinity; wenn ein Parameter nicht in einen numerischen Wert konvertiert werden kann, ist das Ergebnis NaN. Das Wichtigste ist, dass diese beiden Funktionen nicht direkt für Zahlenarrays verwendet werden können. Es gibt jedoch einige ähnliche Methoden.

Function.prototype.apply() ermöglicht Ihnen das Aufrufen von Parametern mithilfe der bereitgestellten Arrays „this“ und „parameter“.

// 取出数组中最大值
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
Nach dem Login kopieren
Das Math-Objekt ist ebenfalls ein Objekt und kann mit Objektliteralen geschrieben werden, wie zum Beispiel:

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
Nach dem Login kopieren
Tatsächlich gibt es einen einfacheren Weg. Die ES2015-basierte Methode zur Implementierung dieser Funktionalität besteht in der Verwendung des Spread-Operators:

var numbers = [1, 2, 3, 4];
Math.max(...numbers) // 4
Math.min(...numbers) // 1
Nach dem Login kopieren

Dieser Operator bewirkt, dass die Werte im Array an der Stelle des Funktionsaufrufs erweitert werden.

Zusammenfassung

In diesem Artikel werden mehrere Methoden zum Extrahieren der Maximal- und Minimalwerte aus einem Array zusammengefasst. Diese Methoden gelten nur für numerische Arrays. Wenn das Array jedoch andere Datentypen enthält, erfahren Sie, wie Sie nur den größten und den kleinsten Wert extrahieren (wenn Sie wissen, wie man es implementiert, geben Sie mir bitte einen Rat). Unter diesen Methoden können mithilfe der in JavaScript integrierten Funktionen Math.max() und Math.min() zusammen mit Function.prototype.apply() problemlos die Maximal- und Minimalwerte im Array abgerufen werden. Die einfachste Methode ist natürlich die Verwendung des Anzeigeoperators in ES2015.

Hier geht es um die Methode zum Erhalten der Maximal- und Minimalwerte in einem Array in JavaScript-Studiennotizen. Wenn Sie eine bessere Lösung haben, können Sie diese hoffentlich in den Kommentaren unten mit uns teilen.

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage