•prinsip:
• Metode Foreach Supports Browser Advanced
Sintaks: baik foreach dan peta dukungan 2 parameter: satu adalah fungsi panggilan balik (item, indeks, daftar) dan konteks;
• Foreach: Digunakan untuk mengulangi setiap item dalam array; Eksekusi metode ini tidak memiliki nilai pengembalian dan tidak berpengaruh pada array asli;
• Ada beberapa item dalam array, sehingga fungsi panggilan balik anonim yang disahkan perlu dieksekusi beberapa kali;
• Setiap kali fungsi anonim dijalankan, tiga nilai parameter juga diteruskan ke sana: item saat ini dalam array, indeks indeks item saat ini, dan input array asli;
• Secara teoritis, metode ini tidak mengembalikan nilai, itu hanya melintasi setiap item dalam array dan tidak memodifikasi array asli; Tetapi kita dapat memodifikasi array asli sendiri melalui indeks array;
• Ini dalam metode foreach adalah ary, dan ini dalam fungsi callback anonim adalah jendela secara default;
var ary = [12,23,24,42,1]; var res = ary.foreach (fungsi (item, indeks, input) {input [indeks] = item*10;}) console.log (res); //-> tidak terdefinisi; console.log (ary); //-> akan mengubah array asli;• Peta: sangat mirip dengan foreach. Ini digunakan untuk mengulangi melalui setiap nilai item dalam array dan untuk mengulangi setiap item dalam array;
• Perbedaan: Nilai pengembalian pengembalian didukung dalam fungsi panggilan balik peta; Apa yang dikembalikan setara dengan mengubah item ini dalam array menjadi mengapa (tidak mempengaruhi array asli, itu setara dengan mengkloning salinan array asli dan mengubah item yang sesuai dalam array yang dikloning);
• Setiap atau MAP mendukung nilai parameter kedua. Parameter kedua berarti memodifikasi ini dalam fungsi panggilan balik anonim.
var ary = [12,23,24,42,1]; var res = ary.map (fungsi (item, indeks, input) {return item*10;}) console.log (res); //-> [120.230.240,420,2]; console.log (ary); //--1240,420,2];• Metode penulisan yang kompatibel:
• Apakah itu foreach atau peta di IE6-8 (tidak ada dua metode pada array. Prototipe saat tidak kompatibel), kita perlu merangkum kedua metode yang kompatibel sendiri, kodenya adalah sebagai berikut:
/*** Foreach Traversal Array* @param Callback [Fungsi] Fungsi Callback; * @param konteks [objek] konteks; */Array.prototype.myforeach = function myforeach (callback, context) {context = context || jendela; if ('foreach' di array.prototye) {this.foreach (callback, context); kembali; } // Di IE6-8, tulis logika untuk eksekusi fungsi callback sendiri untuk (var i = 0, len = this.length; i <len; i ++) {callback && callback.call (konteks, ini [i], i, this); }} /*** peta array traversal* @param callback [fungsi] fungsi panggilan balik; * @param konteks [objek] konteks; */Array.prototype.mymap = function mymap (callback, context) {context = context || jendela; if ('peta' di array.prototye) {return this.map (callback, context); } // IE6-8 Logika untuk menulis eksekusi fungsi panggilan balik sendiri var newary = []; untuk (var i = 0, len = this.length; i <len; i ++) {if (typeof callback === 'function') {var val = callback.call (konteks, ini [i], i, this); Newary [newary.length] = val; }} return newary;}PS: Jika ada kesalahan dalam metode penulisan di atas, harap perbaiki, ^^
Metode Pengantar Array Traversal Foreach () dan MAP () di atas dan metode penulisan yang kompatibel dalam JavaScript adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.