var arr = [0, 1, 2].map(function(num) { return num * 2; }); console.log(arr); // => [0, 2, 4]
的な感じで、配列の要素にループでアクセスして、
結果を新たな配列として返すmap関数の引数について調べました。いまさらですが。
mapに渡す引数
第一引数は コールバック関数 、第二引数はオプションで コールバック関数内でのthisの値 を渡すことができます。
第二引数を省略すると、
["a", "b", "c"].map(function() { console.log(this); });
window window window
とコールバックを普通に実行した際と同じthisになります。
第二引数を渡すと、
["a", "b", "c"].map(function() { console.log(this); }, document);
document document document
第二引数がthisになります。
callやapplyの第一引数と同じ使い方です。
コールバックに渡される引数
["a", "b", "c"].map(function() { console.log(arguments); });
こんな感じでコールバックを渡したとき、
["a", 0, ["a", "b", "c"]] ["b", 1, ["a", "b", "c"]] ["c", 2, ["a", "b", "c"]]
と出力されます。
すなわち、コールバック関数には、
対象となる要素 、index 、配列全体
の順に渡されます。