ネストした配列を平坦化する。flatMapはmapとflatを合成
// ── 基本: ネストした配列を1段階フラット化 ───────────────
const nested = [1, [2, 3], [4, [5, 6]]];
console.log(nested.flat()); // [1, 2, 3, 4, [5, 6]] ← 1段階のみ
console.log(nested.flat(2)); // [1, 2, 3, 4, 5, 6] ← 2段階まで
console.log(nested.flat(Infinity)); // 全レベルをフラット化
// ── flatMap: map してから flat する(よく使う)────────
const sentences = ['hello world', 'foo bar'];
// split で分割した結果(配列の配列)をそのままフラット化
const words = sentences.flatMap(s => s.split(' '));
console.log(words); // ['hello', 'world', 'foo', 'bar']
// ── API レスポンスのネスト構造を平坦化する例 ─────────
const categories = [
{ name: '果物', items: ['りんご', 'バナナ'] },
{ name: '野菜', items: ['にんじん', 'じゃがいも'] },
];
const allItems = categories.flatMap(c => c.items);
// ['りんご', 'バナナ', 'にんじん', 'じゃがいも']flat(Infinity)で深さ無制限に平坦化できる。flatMapはmapしてflatより効率的。