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

JavaScriptでネストされた配列をフラットな配列に変換する方法

ネストされた配列とは

JavaScriptでは、配列の中にさらに配列が入っている「ネストされた配列(多次元配列)」を扱うことがよくあります。たとえば、次のような配列を見てみましょう。

const arrayObject = [
    [
        {
            Name: "John"
        },
        {
            countryName: "US"
        }
    ],
    [
        {
            subjectName: "JavaScript"
        },
        {
            teacherName: "Mike"
        }
    ]
];

このように、オブジェクトを含む配列がさらに別の配列に格納されている状態です。

flat()メソッドで配列を平坦化する

ネストされた配列を通常の1次元配列に変換するには、flat()メソッドを使用します。flat()は、指定した深さまで配列を再帰的に結合し、新しい配列を返すメソッドです。引数を省略した場合、深さ1(一段階)だけ平坦化されます。

コード例

const arrayObject = [
    [
        {
            Name: "John"
        },
        {
            countryName: "US"
        }
    ],
    [
        {
            subjectName: "JavaScript"
        },
        {
            teacherName: "Mike"
        }
    ]
];
const output = arrayObject.flat();
console.log(output);

実行方法

上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。ここでは、ファイル名をdemo50.jsとして保存しています。

node demo50.js

出力結果

プログラムを実行すると、以下のようにネストが解除された1次元配列が出力されます。

PS C:\Users\Amit\JavaScript-code> node demo50.js
[
    { Name: 'John' },
    { countryName: 'US' },
    { subjectName: 'JavaScript' },
    { teacherName: 'Mike' }
]

深いネストに対応するには

flat()メソッドは、引数で平坦化の深さを指定できます。デフォルトは1ですが、どれだけ深くネストしていてもすべて平坦化したい場合は、Infinityを指定すると便利です。

const deepNested = [1, [2, [3, [4]]]];
console.log(deepNested.flat(Infinity)); // [1, 2, 3, 4]

このように、flat()メソッドを使えば、ネストされた配列を簡単かつ効率的にフラットな配列へと変換できます。

  1. 【JavaScript】filterとjoinを組み合わせて、条件に合う配列要素だけを結合する方法

    JavaScriptでは、filter()メソッドとjoin()メソッドを組み合わせることで、条件を満たす要素だけを抽出し、それらを任意の区切り文字で1つの文字列に結合できます。本記事では、配列の中から「2で割り切れる要素(偶数)」だけを取り出して結合する具体例を、動作するサンプルコードとともに解説します。 処理の流れ:filter() と join() の役割 filter():コールバック関数が true を返した要素だけを集めた新しい配列を作成します。元の配列は変更されません。 join():配列内のすべての要素を、引数で指定した区切り文字で連結し、1つの文字列として返します。引数

  2. 【JavaScript入門】複数のオブジェクトを1つにマージして単一のオブジェクト配列を作成する方法

    JavaScriptでは、Object.assign()メソッドとスプレッド構文(...)を組み合わせることで、配列内の複数のオブジェクトを1つのオブジェクトに簡単にマージすることができます。 Object.assign()は、1つ以上のコピー元オブジェクトから、コピー先のオブジェクトへすべてのプロパティをコピーするためのメソッドです。スプレッド構文を使って配列の要素を展開することで、各オブジェクトのキーと値が1つのオブジェクトに統合されます。 コード例 以下のコードは、配列内の複数のオブジェクトを単一のオブジェクトにマージする例です。 <!DOCTYPE html> <ht