Jedyną różnicą, jaką widzę w map i foreach, jest to, że mapzwraca tablicę, a forEachnie jest. Jednak nie rozumiem nawet ostatniego wiersza forEachmetody „ func.call(scope, this[i], i, this);”. Na przykład, nie jest „ this” i „ scope”, odnosząc się do tego samego obiektu, a nie jest this[i], a iodnosząc się do aktualnej wartości w pętli?
Zauważyłem w innym poście, że ktoś powiedział: „Użyj, forEachgdy chcesz coś zrobić na podstawie każdego elementu listy. Możesz na przykład dodawać rzeczy do strony. Zasadniczo jest świetny, gdy chcesz mieć„ efekty uboczne ”. Nie wiem, co oznaczają skutki uboczne.
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);
}
}
Wreszcie, czy istnieją jakieś rzeczywiste zastosowania tych metod w javascript (ponieważ nie aktualizujemy bazy danych) inne niż manipulowanie liczbami w następujący sposób:
alert([1,2,3,4].map(function(x){ return x + 1})); //this is the only example I ever see of map in javascript.
Dzięki za każdą odpowiedź.
mapiforEach? Wszystko, co otrzymuję od Google, to specyfikacje użytkowania i samouczki.