Єдину різницю, яку я бачу в map і foreach, полягає в тому, що map
повертає масив, а forEach
ні. Однак я навіть не розумію останній рядок forEach
методу " func.call(scope, this[i], i, this);
". Наприклад, не « this
» і « scope
» зі посиланням на той самий об'єкт і не є , this[i]
і з i
посиланням на поточне значення в циклі?
Я помітив, що в іншому дописі хтось сказав: "Використовуйте, forEach
коли ви хочете зробити щось на основі кожного елемента списку. Можливо, ви додаєте речі на сторінку, наприклад. По суті, це чудово, коли ви хочете" побічні ефекти ". Я не знаю, що мається на увазі під побічними ефектами.
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);
}
}
Нарешті, чи існує реальне використання цих методів у javascript (оскільки ми не оновлюємо базу даних), крім маніпулювання такими числами:
alert([1,2,3,4].map(function(x){ return x + 1})); //this is the only example I ever see of map in javascript.
Дякую за будь-яку відповідь.
map
таforEach
? Все, що я отримую від Google - це специфікації використання та навчальні посібники.