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

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

構文

var newArray = arr.flat(depth)

パラメーター

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

戻り値

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

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

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

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

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

フラット化と配列の穴

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

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

代替え

reduceconcat

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

仕様

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

ブラウザー実装状況

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

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

関連項目

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

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