Jedyną różnicą, jaką widzę w map i foreach, jest to, że map
zwraca tablicę, a forEach
nie jest. Jednak nie rozumiem nawet ostatniego wiersza forEach
metody „ 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 i
odnosząc się do aktualnej wartości w pętli?
Zauważyłem w innym poście, że ktoś powiedział: „Użyj, forEach
gdy 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ź.
map
iforEach
? Wszystko, co otrzymuję od Google, to specyfikacje użytkowania i samouczki.