Единственная разница, которую я вижу в 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, - это спецификации использования и руководства.