JavaScript flat() 方法
实例代码
按照一个可指定的深度递归遍历数组:
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]
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]
arr4.flat();
// [1, 2, 4, 5]