Tips
今日の開発Tips(2025-06-04)
JavaScriptの`Array.prototype.flatMap`メソッドは、配列の各要素に対して関数を適用し、その結果を平坦化された新しい配列として返します。`map`メソッドと`flat`メソッドを組み合わせたような動作で、ネストされた配列の処理を簡潔に記述できます。特に、複数の配列を結合したり、複雑なデータ構造をフラット化する場合に便利です。
Array.flatMapによる配列の平坦化
flatMapメソッドは、配列の各要素に対してコールバック関数を適用し、その結果を新しい配列に結合します。コールバック関数の戻り値が配列の場合、その配列の要素は平坦化されて新しい配列に追加されます。
const nestedArray = [[1, 2], [3, 4], [5]];
const flattenedArray = nestedArray.flatMap(arr => arr);
console.log(flattenedArray); // Output: [1, 2, 3, 4, 5]
// より複雑な例:各要素を2倍にして平坦化
const numbers = [1, 2, 3, [4, 5]];
const doubledAndFlattened = numbers.flatMap(num => Array.isArray(num) ? num.map(n => n * 2) : [num * 2]);
console.log(doubledAndFlattened); // Output: [2, 4, 6, 8, 10]
注意点:コールバック関数の戻り値が配列でない場合、その戻り値はそのまま新しい配列に追加されます。 mapとflatを別々に使うよりも、flatMapを使うことでコードが短く、可読性が高まります。 しかし、処理内容が複雑な場合は、可読性を考慮しmapとflatを分けて記述した方が良い場合もあります。