•Prinzip:
• Advanced Browser unterstützt die für die Eacher -Methode
Syntax: Sowohl foreach als auch Map -Unterstützung 2 Parameter: Eine ist die Rückruffunktion (Element, Index, Liste) und Kontext;
• foreach: Wird verwendet, um jedes Element im Array durchzusetzen; Diese Methodeausführung hat keinen Rückgabewert und hat keinen Einfluss auf das ursprüngliche Array.
• Es gibt mehrere Elemente im Array, sodass die anonyme Rückruffunktion mehrmals ausgeführt werden muss.
• Jedes Mal, wenn eine anonyme Funktion ausgeführt wird, werden auch drei Parameterwerte übergeben: das aktuelle Element im Array, den Indexindex des aktuellen Elements und die ursprüngliche Array -Eingabe;
• Theoretisch gibt diese Methode keinen Wert zurück, sondern nur jedes Element im Array und ändert das ursprüngliche Array nicht. Aber wir können das ursprüngliche Array selbst durch den Index des Arrays ändern.
• Dies in der Foreach -Methode ist ary, und dies in der anonymen Rückruffunktion ist standardmäßig Fenster;
var ary = [12,23,24,42,1]; var res = ary.foreach (Funktion (Element, Index, Eingabe) {Eingabe [index] = item*10;}) console.log (res); //-> undefiniert; console.log (ary); //-> wird das ursprüngliche Array ändern;• Karte: ist für foreach sehr ähnlich. Es wird verwendet, um jeden Artikelwert in einem Array durchzusetzen und jeden Element in einem Array durchzusetzen.
• Differenz: Der Rückgabewert wird in der Karten -Rückruffunktion unterstützt. Was die Rückgabe ist, ist gleichbedeutend mit der Änderung dieses Elements im Array auf das Warum (es wirkt sich nicht auf das ursprüngliche Array aus, sondern entspricht nur dem Klonen einer Kopie des ursprünglichen Arrays und dem Ändern der entsprechenden Elemente im geklonten Array).
• Jede oder Karte unterstützt den zweiten Parameterwert. Der zweite Parameter bedeutet, dies in der anonymen Rückruffunktion zu ändern.
var ary = [12,23,24,42,1]; var res = ary.map (Funktion (Element, Index, Eingabe) {Rückgabeelement*10;}) console.log (res); //-> [120,230,240,420,10]; console.log (ary);• Kompatible Schreibmethode:
• Egal, ob es sich bei IE6-8 befinden oder um eine Karte zu erstellen (es gibt keine zwei Methoden auf Array.Prototyp, wenn sie inkompatibel sind), müssen wir beide kompatiblen Methoden selbst zusammenfassen. Der Code lautet wie folgt:
/*** foreach traversal Array* @param rufe [Funktion] Rückruffunktion; * @param Context [Objekt] Kontext; */Array.prototype.myforeach = function Myforeach (Rückruf, Kontext) {context = context || Fenster; if ('foreach' in array.prototye) {this.foreach (callback, Kontext); zurückkehren; } // In IE6-8 schreiben Sie die Logik für die Ausführung der Rückruffunktion selbst für (var i = 0, len = this.Length; i <len; i ++) {Callback && callback.call (Kontext, this [i], i, this this); }} /*** MAP TRAVERSAL Array* @Param Callback [Funktion] Rückruffunktion; * @param Context [Objekt] Kontext; */Array.prototype.mymap = function MYMAP (Rückruf, Kontext) {context = context || Fenster; if ('map' in array.prototye) {return this.map (radback, context); } // IE6-8 Logik, um die Ausführung der Rückruffunktion selbst zu schreiben var newary = []; für (var i = 0, len = this.Length; i <len; i ++) {if (typeof callback === 'Funktion') {var val = callback.call (Kontext, this [i], i, this); newary [newary.length] = val; }} return Newary;}PS: Wenn es in der obigen Schreibmethode Fehler gibt, korrigieren Sie es bitte, ^^
Die obige Einführung in Array -Traversal foreach () und MAP () und kompatible Schreibmethoden in JavaScript sind alle Inhalte, die ich mit Ihnen teile. Ich hoffe, Sie können Ihnen eine Referenz geben und ich hoffe, Sie können wulin.com mehr unterstützen.