forEach ist die grundlegendste der neuen Array-Methoden in ECMA5, nämlich Traversal und Looping. Zum Beispiel das folgende Beispiel:
[1, 2,3, 4].forEach(alert);
Entspricht der folgenden for-Schleife
var array = [1, 2, 3, 4]; for (var k = 0, length = array.length; k < length; k++) { alert(array[k]); }
Array In der neuen Methode von ES5 sind alle Parameter Funktionstypen und der Funktionsrückruf in der forEach-Methode unterstützt 3 Parameter. Der erste ist der durchquerte Array-Inhalt entsprechendes Array. Der dritte ist das Array selbst.
Deshalb haben wir:
[].forEach(function(value, index, array) { // ... });
Vergleichen Sie die Methode $.each in jQuery:
$.each([], function(index, value, array) { // ... });
Sie werden feststellen, dass der erste und der zweite Parameter genau entgegengesetzt sind. Bitte achten Sie darauf und merken Sie sich diese nicht falsch. Das Gleiche gilt später auch für ähnliche Methoden, etwa $.map.
var data=[1,3,4] ; var sum=0 ; data.forEach(function(val,index,arr){ console.log(arr[index]==val); // ==> true sum+=val }) console.log(sum); // ==> 8
Karte
Die Karte bedeutet hier nicht „Karte“, sondern „Mapping“. [].map(); Die grundlegende Verwendung ähnelt der forEach-Methode:
array.map(callback,[ thisObject]);
Die Parameter des Rückrufs sind ebenfalls ähnlich:
[].map(function(value, index, array) { // ... });
Die Funktion der Map-Methode ist nicht schwer zu verstehen. Sie ist „Mapping“, das heißt, das ursprüngliche Array wird in das entsprechende neue Array „abgebildet“. Im folgenden Beispiel wird das Quadrat eines numerischen Begriffs ermittelt:
var data=[1,3,4] var Squares=data.map(function(val,index,arr){ console.log(arr[index]==val); // ==> true return val*val }) console.log(Squares); // ==> [1, 9, 16]
Hinweis: Da forEach und map ECMA5-Methoden zum Hinzufügen neuer Arrays sind, unterstützen Browser unter IE9 dies noch nicht (lieber IE). Alle oben genannten Funktionen können jedoch durch Erweitern des Array-Prototyps erreicht werden, z. B. forEach-Methode:
if (typeof Array.prototype.forEach != "function") { Array.prototype.forEach = function() { /* 实现 */ }; }
Die oben genannten Empfehlungen für die Methoden „forEach“, „$.each“ und „map“ in JS sind alle vom Herausgeber geteilten Inhalte. Ich hoffe, dass sie Ihnen eine Referenz geben können, und ich hoffe, dass Sie Script Home unterstützen.