これは実験的な機能です。本番で使用する前にブラウザー実装状況をチェックしてください。

flatten() メソッドは、すべてのサブ配列要素を指定した深さで再帰的に結合した新しい配列を生成します。

ノート: このメソッド名 (flatten) はウェブの互換性問題の観点から現在評価中です。バグ 1443630tc39/proposal-flatMap#56 をご覧ください。

構文

var newArray = arr.flatten(depth)

パラメーター

depth Optional
ネストされた配列構造でどの程度の深さをフラット化するか指定する深さレベル。既定値は 1。

戻り値

サブ配列要素が結合された新しい配列。

ネストされた配列のフラット化

var arr1 = [1, 2, [3, 4]];
arr1.flatten(); 
// [1, 2, 3, 4]

var arr2 = [1, 2, [3, 4, [5, 6]]];
arr2.flatten();
// [1, 2, 3, 4, [5, 6]]

var arr3 = [1, 2, [3, 4, [5, 6]]];
arr3.flatten(2);
// [1, 2, 3, 4, 5, 6]

フラット化と配列の穴

flatten メソッドは配列内の空要素を削除します:

var arr4 = [1, 2, , 4, 5];
arr4.flatten();
// [1, 2, 4, 5]
 

代替え

reduceconcat

var arr1 = [1, 2, [3, 4]];
arr1.flatten();
// is equivalent to
arr1.reduce((acc, val) => acc.concat(val), []);
// [1, 2, 3, 4]

仕様

仕様 ステータス コメント
Array.prototype.flatten proposal 草案  

ブラウザー実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応 なし なし なし1 なし なし なし
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応 なし なし なし なし1 なし なし なし

1. Available in Firefox Nightly only. See bug 1435813 for status on enabling this by default.

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,