Gegeben: Ein Array [1,8,5,4,3,9,2], schreiben Sie einen Algorithmus, um den Maximalwert 9 und den Minimalwert 1 des Arrays zu erhalten. 1. Erweitern Sie die Funktionen min() und max() durch die Prototype-Eigenschaft Die Idee von Algorithmus 1 besteht darin, das Ergebnis zu finden, indem der erste Wert mit den nachfolgenden Werten in einer Schleife in den benutzerdefinierten Funktionen min() und max() verglichen wird und die Maximal- und Minimalwerte dynamisch aktualisiert werden. // Minimalwert Array.prototype.min = Funktion () { lass min = dies[0]; lass len = diese.Länge; für (sei i = 1; i < len; i++) { wenn (dies[i] < min) min = dies[i] } Rückgabe min } // Maximalwert Array.prototype.max = Funktion () { sei max = dies[0]; lass len = diese.Länge; für (sei i = 1; i < len; i++) { wenn (dies[i] > max) max = dies[i] } Rückgabewert max } // Ergebnis console.log(arr.min()); // 1 konsole.log(arr.max()); // 9 2. Verwenden Sie die min()- und max()-Funktionen des Math-Objekts Die Hauptidee von Algorithmus 2 besteht darin, den Ausführungshauptteil der Funktion durch die Funktion apply() zu ändern und das Array als Parameter an die Funktion apply() zu übergeben. Auf diese Weise kann das Array die Funktionen min() und max() des Math-Objekts direkt aufrufen, um den Rückgabewert zu erhalten. Array.min = Funktion(Array) { gibt Math.min.apply(Mathe, Array) zurück } // Maximalwert Array.max = Funktion (Array) { gibt Math.max.apply(Mathe, Array) zurück } // Ergebnis console.log(Array.min(arr)); // 1 konsole.log(Array.max(arr)); // 9 3. Optimierung von Algorithmus 2 In Algorithmus 2 werden die Funktionen min() und max() als statische Funktionen des Typs Array verwendet, Kettenaufrufe werden jedoch nicht unterstützt. Zur Vereinfachung können wir Objektliterale verwenden. // Minimalwert Array.prototype.min = function() { gibt Math.min.apply({}, dies) zurück } // Maximalwert Array.prototype.max = Funktion () { gibt Math.max.apply({}, dies) zurück } // Ergebnis console.log(arr.min()); // 1 konsole.log(arr.max()); // 9 Im Unterschied zu Algorithmus 2 können die Funktionen min() und max() während der Überprüfung direkt über das Array aufgerufen werden, da es sich bei ihnen um Instanzmethoden handelt. 4. Verwenden der Funktion „reduce()“ des Array-Typs Die Kernidee von Algorithmus 4 besteht darin, dass die Funktion „reduce()“ nicht den initialValue setzt, sondern direkt das erste Element des Arrays als ersten Parameter der Callback-Funktion verwendet und es der Reihe nach mit den nachfolgenden Werten vergleicht. Wenn der Maximalwert ermittelt werden muss, gibt der Akkumulator in jeder Runde den größeren Wert zurück; wenn der Minimalwert ermittelt werden muss, gibt der Akkumulator in jeder Runde den kleineren Wert zurück. // Minimalwert Array.prototype.min = Funktion () { gib dies zurück.reduce((pre, cur) => { returniere vor < aktuell ? vor : aktuell }) } // Maximalwert Array.prototype.max = Funktion () { gib dies zurück.reduce((pre, cur) => { Rückgabe vor > aktuell? vor: aktuell }) } // Ergebnis console.log(arr.min()); // 1 konsole.log(arr.max()); // 9 5. Verwenden Sie die Funktion sort() vom Typ Array Die Hauptidee von Algorithmus 5 besteht darin, das Array mithilfe der nativen sort()-Funktion des Arrays zu sortieren. Nachdem die Sortierung abgeschlossen ist, sind das erste und das letzte Element die minimalen und maximalen Elemente des Arrays. lass sortArr = arr.sort((a, b) => a - b) // Minimalwert sortArr[0] // Maximalwert sortArr[sortArr.length - 1] // Ergebnis console.log(sortArr[0]); // 1 console.log(sortArr[sortArr.length - 1]); // 9 6. Verwenden Sie den Spread-Operator von ES6// Minimalwert Math.min(...arr) // Maximalwert Math.max(...arr) // Ergebnis console.log(Math.min(...arr)); // 1 konsole.log(Math.max(...arr)); // 9 Damit ist dieser Artikel über 6 Möglichkeiten zur Implementierung von Maximal- und Minimalwerten eines Arrays in JavaScript abgeschlossen. Weitere relevante Inhalte zu Maximal- und Minimalwerten von JavaScript-Arrays finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Detaillierte grafische Beschreibung des Datenbankinstallationsprozesses der MySQL-Version 5.7.24
>>: CentOS6.8 – Tutorial-Diagramm zum Umschalten der chinesischen/englischen Umgebung
1. Installieren Sie Apache $ sudo apt update &...
Vor zwei Tagen habe ich das Double 11-Shopping-Fe...
Postfix ist ein kostenloser und quelloffener MTA ...
Inhaltsverzeichnis 1. Redo-Log (Transaktionsproto...
Inhaltsverzeichnis Komponenteninfrastruktur Zweck...
Manchmal möchten wir nicht, dass der Inhalt unser...
Die Attribute des <TD>-Tags werden verwende...
Im vorherigen Artikel haben wir nach der Konfigur...
Vorwort Vor kurzem war ich damit beschäftigt, ein...
Wenn der Schlüssel nicht zum v-for-Tag hinzugefüg...
Hier ist ein Beispielcode für die Verwendung regu...
1. Was ist ein Servlet 1.1. Erklären Sie in offiz...
Bei der Installation der komprimierten Version vo...
Beispiel für das Zuschneiden einer Webseite von P...
Inhaltsverzeichnis 1. Verwenden Sie in der v-for-...