Satu-satunya perbedaan yang saya lihat di map dan foreach mapadalah mengembalikan array dan forEachtidak. Namun, saya bahkan tidak mengerti baris terakhir dari forEachmetode " func.call(scope, this[i], i, this);". Misalnya, bukankah " this" dan " scope" merujuk ke objek yang sama dan bukan this[i]dan imerujuk ke nilai saat ini dalam pengulangan?
Saya melihat di posting lain seseorang berkata "Gunakan forEachsaat Anda ingin melakukan sesuatu berdasarkan setiap elemen daftar. Anda mungkin menambahkan sesuatu ke halaman, misalnya. Pada dasarnya, ini bagus untuk saat Anda menginginkan" efek samping ". Saya tidak tahu apa yang dimaksud dengan efek samping.
Array.prototype.map = function(fnc) {
var a = new Array(this.length);
for (var i = 0; i < this.length; i++) {
a[i] = fnc(this[i]);
}
return a;
}
Array.prototype.forEach = function(func, scope) {
scope = scope || this;
for (var i = 0, l = this.length; i < l; i++) {
func.call(scope, this[i], i, this);
}
}
Akhirnya, apakah ada kegunaan nyata untuk metode ini dalam javascript (karena kami tidak memperbarui database) selain untuk memanipulasi angka seperti ini:
alert([1,2,3,4].map(function(x){ return x + 1})); //this is the only example I ever see of map in javascript.
Terima kasih atas balasannya.
mapdanforEach? Yang saya dapatkan dari Google hanyalah spesifikasi penggunaan dan tutorialnya.