Vorwort
Ich bin im Interview auf ein Problem gestoßen: JS-Array-Summenfunktion. Das erste, was mir in den Sinn kommt, ist Array-Looping. Ich bin jedoch der Meinung, dass der Interviewer, wenn er diese Frage stellt, nicht versuchen darf, diese bekannte Methode zu testen. Damals war ich schlau genug, mir eine rekursive Funktion auszudenken, die die Elemente des Arrays kontinuierlich hinzufügt. Nach langem Ringen konnte ich die Methode jedoch nicht anpassen . Schließlich fragte mich der Interviewer, ob ich jemals Reduce() gesehen hätte, und das tat ich wirklich nicht. Also bin ich zurückgekommen, um die Informationen zu überprüfen. Array.reduce() ist ein neues Attribut, das von ES5 hinzugefügt wurde, und Array.reduceRight() ist ähnlich.
Im Folgenden wird die Methode der Array-Summierung zusammengefasst.
Die gröbste Methode: Schleife, um
Element für Element über eine for-Schleife hinzuzufügen. Schauen Sie sich den Code an:
Array.prototype.sum = function (){ var result = 0; for(var i = 0; i < this.length; i++) { result += this[i]; } return result; }; [1,4,7,2,10].sum(); // 24
Verwenden Sie die Reduzierungsmethode
Mit der Reduzierungsmethode können Sie eine Summenmethode für die Array-Summierung schreiben.
Die Methode „reduce()“ empfängt eine Funktion als Akkumulator. Jeder Wert im Array (von links nach rechts) wird zunächst reduziert und wird schließlich zu einem Wert.
Syntax reduzieren:
array.reduce(callback[, initialValue]);
Die Callback-Funktion akzeptiert 4 Parameter: previousValue (der vom letzten Callback-Aufruf zurückgegebene Wert), currentValue (das Element, das gerade verarbeitet wird ) ), Index (index) und das Array selbst (der erste Parameter des ersten Rückrufs) führen die Funktion für jeden Wert im Array aus.
Der Parameter „initialValue“ ist optional und stellt den Anfangswert dar; wenn der Parameter „initialValue“ angegeben wird, wird er als der zuvor verwendete Wert betrachtet. Wenn er standardmäßig verwendet wird, wird das erste Element des Arrays verwendet Der Anfangswert des vorherigen und der aktuelle werden später verwendet.
Array.prototype.sum = function (){ return this.reduce(function (partial, value){ return partial + value; }) }; [1,4,7,2,10].sum(); // 24
Im Vergleich zur ersten Methode ist die Verwendung der Methode „reduce()“ effizienter.
Um die Effizienz dieser beiden Methoden zu vergleichen, können Sie new Date() vor und nach der Ausführung der Funktion direkt aufrufen, um die Echtzeitzeit zu erhalten und so die Ausführungszeit durch den Zeitunterschied zu vergleichen. Hier wird es keinen Vergleich geben, da die Ausführungsumgebung bei jedem sehr unterschiedlich ist. Das Testergebnis ist, dass die Ausführungszeit der Methode Reduce () kürzer ist.
JS-Array-Summenfunktion und Finden des Maximalwerts im Array
Beispielcode
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>php中文网_js数组求和和最大值方法_php中文网</title> <meta name="keywords" content="站长,网页特效,网页特效代码,js特效,js脚本,脚本,广告代码,php.cn,www.php.cn,php中文网" /> <meta name="description" content="www.php.cn,php中文网,站长必备js特效及广告代码。大量高质量js特效,提供高质量广告代码下载,尽在php中文网" /> </head> <body> <a href="http://www.php.cn/">php中文网<</a>,站长必备的高质量网页特效和广告代码。jb51.net,站长js特效。<hr> <script type="text/javascript"> //求和 Array.prototype.sum = function () { for (var sum = i = 0; i < this.length; i++)sum += parseInt(this[i]); return sum ; }; //求最大值 Array.prototype.maxima = function () { for (var i = 0, maxValue = Number.MIN_VALUE; i < this.length; i++)parseInt(this[i]) > maxValue && (maxValue = this[i]); return maxValue; }; //应用 var arr = [1,21,3,4,22,45,60,7,32]; alert(arr.join("+") + "=" + arr.sum()); alert(arr.join("|") + "中, 最大的数是:" + arr.maxima()); </script> </body> </html>
Das Obige ist der Inhalt von Ich hoffe, dass dieser Artikel allen bei der Verwendung von JavaScript hilfreich ist. Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht zur Diskussion. Der Herausgeber wird Ihnen rechtzeitig antworten.
Weitere Artikel über Methoden zum Summieren und Maximieren von JS-Arrays finden Sie auf der chinesischen PHP-Website!