JavaScriptのMap関数は、配列を変えることができる。
まず任意の配列をつくる。配列には変数名をつける。その変数名にmapとつけるのが、map関数をつかうさいのルールとなっている。たとえば、こんなぐあいに。
arr = [1,2,3,4,5]
arr2 = arr.map
そのうえで、()内に関数をつけてゆく。こんなかんじ。
arr = [1,2,3,4,5]
arr2 = arr.map(function(value){
return value*value
};
>[1,4,9,16,25]
valueは任意に付けた引数の名前だけれど、このvalueにとまどってしまうんだわ。
そもそも、一般的な関数と引数の理解に、だいぶ時間が、かかったのよネ。わたし。
あ、そっか、とおもったのは、遊んでいるうちに作った以下のカンタンな関数による。
function add(a,b){
return c= a+b;
};
add(3,7)
>10
この関数と、Map関数をくらべてみよう。
arr = [1,2,3,4,5]
arr2 = arr.map(function(value){
return value*value
};
>[1,4,9,16,25]
オレ的な基本形な関数は、add(3,7)といったふうに引数を入れて10の戻り値を得ている。
それに対してMap関数は、add(3、7)のような引数を入れないまま、[1,4,9,16,25]の戻り値を得ている。このへんの動きが悩ましい。
ここからは仮説ネ。Map関数は、関数というから分かりにくいのであって、じつはオブジェクトなのではないか。こういう感じである。
arrはオブジェクト、mapはプロパティ(あるいはメソッドかな?)、そしておもしろいのが、値を入れる()内に関数を入れることができる点なんだ。そんなに、まちがってはいないとおもうよー。