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

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 草案  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応
実験的
Chrome 完全対応 69Edge 未対応 なしFirefox 完全対応 62IE 未対応 なしOpera 完全対応 56Safari 完全対応 12WebView Android 完全対応 69Chrome Android 完全対応 69Edge Mobile 未対応 なしFirefox Android 完全対応 62Opera Android 完全対応 56Safari iOS 完全対応 12Samsung Internet Android 未対応 なしnodejs 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。

関連項目

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

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