【javascript】map()メソッドの使い方、コールバック関数の指定やオブジェクトを処理する

map()メソッドとは?
map()とは、配列内の要素を一つずつ取り出し、指定の処理を加えて、配列を書き換える ことができるメソッドのことです。
map()を使うことにより、配列内の要素をそれぞれ2倍にしたり、 配列内の特定の要素を書き換えたりすることができます。
map()内のコールバック関数の引数3つ
配列.
map(function(第一引数、第二引数、第二引数){
処理・・・
});
第一引数(value) : 配列の要素を一つずつ取り出します
第二引数(index) : 配列の順番(0, 1, 2, …)
第三引数(array) : 配列の内容
const array = ["あ", "い", "う", "え", "お",];
array.map(function(value, index, array){
console.log(value);
console.log(index);
console.log(array);
})
結果

配列内の要素を2倍にする
3行目 : map()は、非破壊処理なので、 新しく変数resultに代入する必要があります。
4行目 : 処理したものをreturnで返します。
7行目 : 元の配列は変化しません。
const numberArray = [1, 2, 3, 4, 5];
const result = numberArray.map(function(value){
return value * 2
})
console.log(numberArray);
console.log(result);
結果
元の配列は変化せず、resultの配列内の要素がそれぞれ2倍になりました。

map()の第二引数にオブジェクト
配列のキーワードを使ってオブジェクト内の値を取得したいと思います。
1行目 : map()の第二引数に指定するオブジェクト
9行目 : map()処理をする配列。取得したい値のキーワード
12行目 : map()内のコールバック関数にthisをreturn した場合、なにが取得されるか確認します。
const fruitList = {
"リンゴ": 150,
"バナナ": 200,
"オレンジ": 300,
"マンゴー": 450,
};
//任意のキーワードを指定する
const order = ["リンゴ", "マンゴー"];
const result = order.map(function (value) { // 配列orderにmap()
return this;
}, fruitList); // 第二引数にオブジェクト
console.log(result);
結果 thisの内容
orderの長さが2つなので、2回処理が繰り返され、オブジェクトの fruitListが取得されています。

キーワードの値を取得する
12行目 : ここだけ書き換えます。
return this[value];
const fruitList = {
"リンゴ": 150,
"バナナ": 200,
"オレンジ": 300,
"マンゴー": 450,
};
//任意のキーワードを指定する
const order = ["リンゴ", "マンゴー"];
const result = order.map(function (value) {
return this[value];
}, fruitList);
console.log(result);
結果
リンゴとマンゴーの値が取得できました。

参考




まとめ
- map()メソッドは配列の要素を一つずつ取り出し、処理を加えることができる。
-
map()内のコールバック関数には3つの引数を書くことができる
第一引数:配列の要素をひとつずつ
第二引数:配列の要素の番号
第一引数:処理する配列
- map()メソッドの第二引数にオブジェクトを指定できる
こんな記事も読まれています。
-
【HTML】【CSS】【javascript】電卓の作り方
電卓のソースコードを2つ紹介します。javascriptはわずか数行で書けます。
-
【JacvaScript】【CSS】たった4行のJavaScriptでできるハンバーガーメニューの作り方
たった4行のJavaScriptで作るハンバーガーメニューの作り方について紹介します。✖をつくるには、transform-originがポイントです。
- リンク
-
波紋エフェクトを表現するjqueryのripples-min.jsの使い方
jqueryのripples-min.jsを使うと簡単に水面の波紋を表現できます。波紋の広がりの速度、波紋の大きさ、波紋のブレの値を変えていろいろ表現させると面白いです。
-
【Javascript】querySelectorAllで要素を取得し、クリックしたら、クラスを追加したり、削除したりする方法。
JavascriptのquerySelectorAllで要素を取得し、クリックしたら、クラスを追加したり、削除したりする方法について解説します。querySelectorと同じように書いてしまうとエラーがでます。forEachを使うとすべてに適用できます。
- リンク
-
要素の高さを取得する方法。getBoundingClientRectとは?window.innerHeightとは?window.pageYOffsetとは?
要素の高さを取得する方法について解説します。getBoundingClientRect、window.innerHeight、window.pageYOffsetについて理解し、要素がいつ画面に現れるかを把握できるようにしましょう。
-
Javascriptを使ったページネーションの実装
トップページの記事が増えてきたので、何とかページネーションで最新の記事だけを表示できないかと思っていたら、いい記事を発見しました。カスタマイズして実装することができました。
- リンク
-
【Javascript】マウスの指す(X, Y)座標とドラッグ & ドロップを理解する
マウスの指す(X, Y)座標とドラッグ & ドロップについて解説します。mousedown, mouseover, mousemove, mouseupを使います。
-
【javascript】連想配列をテーブルできれいに表示する方法
javascript(Object.entries)を使って、連想配列の中身をテーブルできれいに表示する方法について紹介します。
- リンク