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
およびで行ったように、関数のネイティブJavaScriptの定義をどのように見つけることができますforEach
か?Googleから入手できるのは、使用法の仕様とチュートリアルだけです。