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

JavaScriptのArray.flat()メソッドとは?使い方をわかりやすく解説

Array.flat()メソッドの基本

JavaScriptのArray.flat()メソッドは、ネストされた(入れ子になった)配列を、指定した深さまで再帰的に平坦化(フラット化)するためのメソッドです。元の配列は変更されず、新しい平坦化された配列が生成される点が特徴です。

引数には平坦化の深さ(depth)を数値で指定します。深さを指定しない場合のデフォルト値は「1」です。また、「Infinity」を指定すると、どれほど深くネストされた配列でも完全に平坦化できます。

構文

arr.flat(depth)
  • depth(省略可能):ネストされた配列を展開する深さ。デフォルトは1。

サンプルコード

以下は、Array.flat()メソッドを使って配列を深さ1で平坦化する具体的なコード例です。

<!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;
    }
    .result,.sample {
        font-size: 20px;
        font-weight: 500;
    }
</style>
</head>
<body>
<h1>Array.flat()メソッド</h1>
<div class="sample"><pre>[1,2,3,[4,5],[6,[7,8]]]</pre></div>
<div style="color: green;" class="result">flat実行後: <br></div>
<button class="Btn">クリックしてください</button>
<h3>
上のボタンをクリックすると、配列が深さ1で平坦化されます
</h3>
<script>
    let resEle = document.querySelector(".result");
    let sampleEle = document.querySelector(".sample");
    let arr = [1,2,3,[4,5],[6,[7,8]]];
    document.querySelector(".Btn").addEventListener("click", () => {
        let store = arr.flat(1);
        store.forEach((item,index) => {
            resEle.innerHTML += index + ' : ' + item + ' ';
        });
    });
</script>
</body>
</html>

実行結果

上記のコードを実行すると、次のような画面が表示されます。

JavaScriptのArray.flat()メソッドとは?使い方をわかりやすく解説

「クリックしてください」ボタンを押すと、配列[1,2,3,[4,5],[6,[7,8]]]が深さ1で平坦化され、結果として「0 : 1 1 : 2 2 : 3 3 : 4 4 : 5 5 : 6 6 : [7,8]」のように表示されます。深さ1の指定では、内側の[7,8]までは展開されない点に注目してください。

JavaScriptのArray.flat()メソッドとは?使い方をわかりやすく解説

まとめ

Array.flat()メソッドを使えば、複雑にネストされた配列を簡単に扱いやすい形へ変換できます。元の配列を壊さずに新しい配列を返すため、安全にデータ処理を行えるのも大きなメリットです。深さを指定して部分的に展開することも、Infinityで全階層を展開することもできるので、用途に応じて柔軟に活用しましょう。

  1. JavaScriptのArray.prototype.flat()メソッドとは?配列を指定した深さで平坦化する方法

    Array.prototype.flat()メソッドとはJavaScriptのArray.prototype.flat()メソッドは、ネストされた配列を指定した深さまで再帰的に平坦化(フラット化)するためのメソッドです。元の配列を変更することはなく、平坦化された新しい配列を作成して返します。引数には平坦化の深さ(depth)を数値で指定します。省略した場合はデフォルトで「1」が適用され、「Infinity」を指定すればすべての階層のネストを完全に展開することも可能です。コード例以下は、Array.prototype.flat()メソッドを使用したサンプルコードです。<!DOCTYPE h

  2. JavaScriptでフラットなオブジェクト配列をツリー構造に変換する方法

    はじめにWeb開発では、カテゴリ一覧やフォルダ構成、組織図など、階層構造をもつデータを画面に表示したい場面がよくあります。一方で、データベースやAPIから取得したデータは、idとparentIdを持つフラット(一次元)な配列として渡されることがほとんどです。本記事では、こうしたフラットな配列をもとに、子要素を親オブジェクトへリンクさせたツリー構造を組み立て、ネストされたリスト形式で画面に表示するまでの手順を、HTML・CSSのコード付きでわかりやすく解説します。元データとなるフラットな配列まず、変換対象となるデータを確認しましょう。各オブジェクトは、自身の一意な識別子であるid、表示名のnam