本記事では、JavaScriptの多次元配列を普通の配列に戻す方法について解説しています。
JavaScriptの学習におすすめ書籍
1冊ですべて身につくJavaScript入門講座
メリット
- 誰でも分かるように嚙み砕いて説明してくれる
- アニメーションの知識が深く学べる
- 1つのWebサイトを作りながら学べる
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
多次元配列を普通の配列に戻す方法
多次元配列を普通の配列に戻すには、flatメソッドを使います。基本的な使い方は以下のとおりです。
let newArray = Array.flat([depth]);
構文解説
- newArray:多次元配列から変換された普通の配列が代入される※1
- Array:対象の多次元配列を指定
- depth:解除するネストの深さを指定(デフォルト値:1)
※1:depthに指定する値によって、ネストが浅くなっただけの多次元配列が代入される場合もあります。
実際に、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」を指定します。すると、多次元配列がバラバラの深さであっても完全に配列に戻すことができます。