【JavaScript】map – 配列を操作するメソッド

JavaScriptの配列を操作するメソッドの中で、map()は特に便利なメソッドの1つです。今回は、map()の基本的な使い方から使用時の注意点までをまとめていきたいと思います。

map()メソッドとは?

map()メソッドは、配列の各要素に対して関数を適用し、新しい配列を作成するメソッドです。元の配列は変更されません。

基本的な使い方

JavaScript
// 数値の配列を定義
let numbers = [1, 2, 3, 4, 5];

// 各要素を2倍にした新しい配列を作成
let doubledNumbers = numbers.map(num => num * 2);

console.log(doubledNumbers); // [2, 4, 6, 8, 10]

サンプルコード

配列内のオブジェクトを変換する

オブジェクトの配列をmap()で変換することも可能です。

JavaScript
// ユーザー情報の配列
let users = [
    { id: 1, name: 'Alice' },
    { id: 2, name: 'Bob' },
    { id: 3, name: 'Chris' }
];

// 名前だけの配列を作成
let userNames = users.map(user => user.name);

console.log(userNames); // ["Alice","Bob","Chris"]

HTML要素を生成する

map()を使ってHTMLのリストを動的に作成できます。

JavaScript
// 商品リスト
let products = ['コーヒーサーバー', 'ドリッパー', 'ケトル'];

// 各商品をリストアイテム(li要素)に変換
let listItems = products.map(product => `<li>${product}</li>`);

// 結果を表示
console.log(listItems.join('\n'));

数値のフォーマットを統一する

金額をフォーマットする例です。

JavaScript
let prices = [1000, 2000, 3000];

// 日本円のフォーマットに変換
let formattedPrices = prices.map(price => `¥${price.toLocaleString()}`);

console.log(formattedPrices); // ["¥1,000","¥2,000","¥3,000"]

使用時の注意点

必ず新しい配列を返す

map()は元の配列を変更せず、新しい配列を返します。変更を期待する場合はforEach()などを検討しましょう。

undefinedを返さないようにする

map()内で値を返さないと、新しい配列にはundefinedが入ってしまいます。

JavaScript
let numbers = [1, 2, 3];
let newNumbers = numbers.map(num => {
    num * 2; // 値を返していないため、結果は [undefined, undefined, undefined]
});

console.log(newNumbers)

正しくはreturnを明示するか、アロー関数の省略形を使いましょう。

JavaScript
let numbers = [1, 2, 3];
let correctNumbers = numbers.map(num => num * 2);
console.log(correctNumbers); // [2, 4, 6]