我在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
and 一样,如何找到本机JavaScript的函数定义forEach
?我从Google那里获得的只是使用规范和教程。