はじめに
この記事を読めば、JavaScriptのmapメソッドを使いこなす方法がわかります。
JavaScript mapは、配列に対して繰り返し処理を行い、その結果を新しい配列として返す非常に便利なメソッドです。
今回は、初心者でも分かりやすいように、mapメソッドの使い方や応用例、注意点などを5つのサンプルコードと共に徹底解説していきます。
最後まで読めば、JavaScript mapを極めることができるでしょう。
●JavaScript mapとは
JavaScriptのmapメソッドは、配列の各要素に対してコールバック関数を実行し、その結果を新しい配列として返すメソッドです。
これにより、配列の要素を加工したり、別のデータ構造に変換する際に役立ちます。
○mapメソッドの基本
mapメソッドは、配列に対して次のように呼び出します。
配列.map(コールバック関数)
コールバック関数は、配列の各要素に対して実行され、引数として要素の値、インデックス、元の配列が渡されます。
コールバック関数の戻り値が新しい配列の要素となります。
●JavaScript mapの使い方
それでは、JavaScriptのmapメソッドの使い方を見ていきましょう。
○サンプルコード1:配列の要素を二倍にする
このコードでは、配列の各要素を2倍にした新しい配列を作成しています。
mapメソッドを使って、各要素に2をかけた結果を新しい配列に格納しています。
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(function (number) {
return number * 2;
});
console.log(doubled); // [2, 4, 6, 8, 10]
○サンプルコード2:オブジェクトの配列から特定のプロパティを抽出
このコードでは、オブジェクトの配列から特定のプロパティ(ここでは’name’)を抽出して、新しい配列を作成しています。
mapメソッドを使って、各オブジェクトから’name’プロパティの値を取り出し、新しい配列に格納しています。
const people = [
{ name: 'Alice', age: 30 },
{ name: 'Bob', age: 25 },
{ name: 'Carol', age: 35 },
];
const names = people.map(function (person) {
return person.name;
});
console.log(names); // ['Alice', 'Bob', 'Carol']
○サンプルコード3:配列の要素を条件によって変換
このコードでは、配列の要素を条件によって変換して新しい配列を作成しています。
具体的には、偶数ならそのままの値を、奇数なら-1倍した値を新しい配列に格納しています。
const numbers = [1, 2, 3, 4, 5];
const processed = numbers.map(function (number) {
if (number % 2 === 0) {
return number;
} else {
return number * -1;
}
});
console.log(processed); // [-1, 2, -3, 4, -5]
●JavaScript mapの応用例
ここでは、JavaScript mapを使った応用例を紹介します。
○サンプルコード4:二次元配列の合計値を計算
このコードでは、二次元配列の各配列の合計値を計算し、その結果を新しい配列に格納しています。
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
];
const sums = matrix.map(function (row) {
return row.reduce(function (sum, number) {
return sum + number;
}, 0);
});
console.log(sums); // [6, 15, 24]
○サンプルコード5:配列内のオブジェクトをキーでグループ化
このコードでは、配列内のオブジェクトを特定のキー(ここでは’category’)を基にグループ化しています。
reduceメソッドを使って、キーごとにオブジェクトをまとめた新しいオブジェクトを作成しています。
const items = [
{ name: 'A', category: 'X' },
{ name: 'B', category: 'Y' },
{ name: 'C', category: 'X' },
{ name: 'D', category: 'Z' },
{ name: 'E', category: 'Y' },
];
const grouped = items.reduce(function (acc, item) {
if (!acc[item.category]) {
acc[item.category] = [];
}
acc[item.category].push(item);
return acc;
}, {});
console.log(grouped);
/*
{
X: [{ name: 'A', category: 'X' }, { name: 'C', category: 'X' }],
Y: [{ name: 'B', category: 'Y' }, { name: 'E', category: 'Y' }],
Z: [{ name: 'D', category: 'Z' }],
}
*/
●注意点と対処法
JavaScriptのmapメソッドを使用する際には、次の注意点に留意してください。
- mapメソッドは新しい配列を返すため、元の配列は変更されません。
破壊的な操作を避けたい場合には、mapメソッドが適しています。 - mapメソッドは、コールバック関数が全ての要素に対して実行されるため、処理が重い場合はパフォーマンスに影響する可能性があります。
その場合は、適切な処理を選択してください。
●カスタマイズ方法
JavaScriptのmapメソッドを使って、独自の処理を実装することができます。
例えば、コールバック関数にアロー関数を使ってコードを簡潔にすることができます。
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(number => number * 2);
console.log(doubled); // [2, 4, 6, 8, 10]
まとめ
この記事では、JavaScriptのmapメソッドの使い方や応用例、注意点を紹介しました。
mapメソッドは、配列の要素を加工したり、新しいデータ構造に変換する際に非常に便利です。
適切な使い方をマスターして、より効率的なコーディングを実現しましょう。