JavaScript flat() 方法

Array 对象参考手册 JavaScript Array 对象

实例

按照一个可指定的深度递归遍历数组:

let nestedArray = [1, 2, [3, 4, [5, 6]]]; let flatArray = nestedArray.flat(); console.log(flatArray); // 输出: [1, 2, 3, 4, [5, 6]] // 指定深度为2 let deeplyNestedArray = [1, 2, [3, 4, [5, 6]]]; let deeplyFlatArray = deeplyNestedArray.flat(2); console.log(deeplyFlatArray); // 输出: [1, 2, 3, 4, 5, 6]

输出结果为:


尝试一下 »

在上面的例子中,flat() 方法被用于将嵌套数组 nestedArray 扁平化成一维数组。在第二个例子中,通过传递深度参数,可以深度扁平化嵌套数组 deeplyNestedArray。

请注意,flat() 方法返回一个新的数组,原始数组不受影响。


定义和用法

flat() 方法方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。

flat() 方法返回一个包含将数组与子数组中所有元素的新数组。

flat() 方法会递归地遍历数组,将所有嵌套的数组元素提取出来,生成一个新的一维数组。


浏览器支持

表格中的数字表示支持该方法的第一个浏览器版本号。

方法
flat() 45.0 12.0 32.0 9 25.0

语法

flat()
flat(depth)

参数

参数 描述
depth 指定要提取嵌套数组的结构深度,默认值为 1。

技术细节

返回值: 数组。
JavaScript 版本: ECMAScript 6

更多实例

扁平化嵌套数组

实例

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]

//使用 Infinity,可展开任意深度的嵌套数组
var arr4 = [1, 2, [3, 4, [5, 6, [7, 8, [9, 10]]]]];
arr4.flat(Infinity);
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

扁平化与数组空项:flat() 方法会移除数组中的空项:

实例

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


Array 对象参考手册 JavaScript Array 对象