这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

flat() 方法会递归到指定深度将所有子数组连接,并返回一个新数组。

语法

var newArray = arr.flat(depth)

参数

depth 可选
指定嵌套数组中的结构深度,默认值为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]

扁平化与空项

flatten()方法会移除数组中的空项:

var arr4 = [1, 2, , 4, 5];
arr4.flat();
// [1, 2, 4, 5]
//=> [1, 2, 3, 4, 5, 6, 7, 8, 9]

规范

规范 状态 说明
Array.prototype.flat proposal Draft  

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support69 No62 No56 No
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support6969 No6256 No No

相关链接

文档标签和贡献者

此页面的贡献者: fscholz, fisker, Braised-Cakes
最后编辑者: fscholz,