本記事では、JavaScriptの多次元配列を普通の配列に戻す方法について解説しています。
JavaScriptの学習におすすめ参考書
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで
先輩くん
10万部突破したJavaScriptの本が大幅増補改訂し7年ぶりに発売されたよ!
後輩ちゃん
最新の基本文法から、開発に欠かせない応用トピックまで学ぶことが出来るよ!
綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!
多次元配列を普通の配列に戻す方法
多次元配列を普通の配列に戻すには、flatメソッドを使います。基本的な使い方は以下のとおりです。
let newArray = Array.flat([depth]);
構文解説
- newArray:多次元配列から変換された普通の配列が代入される※1
- Array:対象の多次元配列を指定
- depth:解除するネストの深さを指定(デフォルト値:1)
実際に、flatメソッドを使用して多次元配列を普通の配列に戻すサンプルコードを用意したので、確認してみましょう。
let alphabetArr = ["A", "B", ["C", "D", ["E", "F"]]];
let newAlphabetArr1 = alphabetArr.flat();
console.log(newAlphabetArr1); // => (5) ['A', 'B', 'C', 'D', Array(2)]
let newAlphabetArr2 = alphabetArr.flat(2);
console.log(newAlphabetArr2); // => (6) ['A', 'B', 'C', 'D', 'E', 'F']
let newAlphabetArr3 = alphabetArr.flat(Infinity);
console.log(newAlphabetArr3); // => (6) ['A', 'B', 'C', 'D', 'E', 'F']
一番最初の「alphabetArr.flat()」はデフォルト値が1のため、「alphabetArr.flat(1)」と同じ状態です。戻り値に代入されている配列を確認すると、1階層分ネストが浅くなっていることが確認できます。
2つ目の「alphabetArr.flat(2)」は引数に2を設定しているため、2階層分ネストが浅くなります。しかし、上記コードのようにネストの深さが固定ではなく、可変になるかもしれない場合は引数に固定の数値を入れてしまうと上手く配列に戻らない可能性があります。
このような場合は、引数に無限を意味する「Infinity」を指定します。すると、多次元配列がバラバラの深さであっても完全に配列に戻すことができます。