JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのArray.flatMap()メソッドとは?ネスト配列をフラット化する使い方を実例で解説

JavaScriptのflatMap()メソッドは、ネストされた配列の各要素にコールバック関数を適用し、その結果を1階層だけ平坦化(フラット化)して、新しい配列として返します。「map()」と「flat()」を組み合わせた処理を1つのメソッドで実現できるため、入れ子構造の配列をシンプルに変換したい場合にとても便利です。

元の配列は変更されず、常に新しい配列が生成される点も覚えておきましょう。

以下は、array.flatMap()メソッドを使った具体的なサンプルコードです。

サンプルコード

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .sample {
        font-size: 20px;
        font-weight: 500;
    }
</style>
</head>
<body>
<h1>JavaScript Array flatMap()</h1>
<div class="sample"></div>
<button class="Btn">CLICK HERE</button>
<h3>
上のボタンをクリックすると、ネストされた配列がフラットな配列に変換されます
</h3>
<script>
    let fillEle = document.querySelector(".sample");
    let arr = ["cow", ["bull", "lion", "tiger"], "sheep"];
    for (x of arr.entries()) {
        fillEle.innerHTML += x + "<br>";
    }
    var entries = arr.entries();
    document.querySelector(".Btn").addEventListener("click", () => {
        arr = arr.flatMap((x) => x);
        fillEle.innerHTML = "";
        for (x of arr.entries()) {
            fillEle.innerHTML += x + "<br>";
        }
    });
</script>
</body>
</html>

このサンプルでは、文字列と配列が混在したネスト構造の配列 ["cow", ["bull", "lion", "tiger"], "sheep"] を用意し、ボタンをクリックすると arr.flatMap((x) => x) によってすべての要素が同一階層に展開されます。

出力結果

ページを開いた直後の表示:

JavaScriptのArray.flatMap()メソッドとは?ネスト配列をフラット化する使い方を実例で解説

「CLICK HERE」ボタンをクリックした後の表示:

JavaScriptのArray.flatMap()メソッドとは?ネスト配列をフラット化する使い方を実例で解説

ボタンを押す前はインデックス0〜2までの要素がそのまま表示されていますが、クリック後はネストされていた「bull」「lion」「tiger」が取り出され、全体が1つのフラットな配列として再表示されることが確認できます。

  1. JavaScriptのArray.prototype.flatMap()メソッドとは?ネストした配列をフラット化する方法

    JavaScriptのArray.prototype.flatMap()メソッドは、ネストされた(入れ子構造の)配列を、新しいフラットな(平坦な)配列へと変換するメソッドです。 flatMap()は、各要素に対してmap()のコールバック関数を実行した後、その結果を深さ1でフラット化します。つまり、「map()してからflat()を呼ぶ」処理を、1つのメソッドで簡潔に記述できるのが大きな特徴です。 flatMap()の基本的な動作 flatMap()の構文は以下の通りです。 arr.flatMap(callbackFn) コールバック関数が配列を返す場合、その返り値の配列が自動的に展開され、結

  2. JavaScriptのArray.flatMap()メソッドでネストした配列をフラット化する方法

    JavaScriptのArray.flatMap()メソッドは、ネスト(入れ子)された配列に対して各要素に関数を適用した結果を、新しいフラット(平坦化)な配列として返します。map()による変換と、深さ1の配列の平滑化を一度に行える便利なメソッドです。 以下は、Array.flatMap()メソッドの動作を確認できるサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8" /> <meta name