JavaScript mapを極める5つの方法

初心者向けJavaScript map徹底解説 JS
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読めば、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メソッドを使用する際には、次の注意点に留意してください。

  1. mapメソッドは新しい配列を返すため、元の配列は変更されません。
    破壊的な操作を避けたい場合には、mapメソッドが適しています。
  2. 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メソッドは、配列の要素を加工したり、新しいデータ構造に変換する際に非常に便利です。

適切な使い方をマスターして、より効率的なコーディングを実現しましょう。