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;
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; }
var arr = [1,45,23,3,6,2,7,234,56]; arr.max(); // 234
var arr = [1,45,23,3,6,2,7,234,56,'2345','a','c']; arr.max(); // 'c'
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
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
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 ? preValue : curValue; }) } var arr = [1,45,23,3,6,2,7,234,56]; arr.max(); // 234
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
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
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
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
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
var numbers = [1, 2, 3, 4]; Math.max(...numbers) // 4 Math.min(...numbers) // 1
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.