摘要:在本教程中,您将学习如何使用 JavaScript 数组 flat()
方法来扁平化数组。
JavaScript 数组 flat() 方法简介
ES2019 引入了 Array.prototype.flat()
方法,该方法创建一个新的 数组,其中包含所有子数组的元素,这些元素被递归地连接到该数组,直到指定的深度。
以下是 flat()
方法的语法
let newArray = arrayObject.flat([depth])
Code language: JavaScript (javascript)
depth
参数指定方法扁平化数组结构的深度。默认值为 1。
以下示例展示了如何扁平化一个数字数组
const numbers = [1, 2, [3, 4, 5]];
const flatNumbers = numbers.flat();
console.log(flatNumbers);
Code language: JavaScript (javascript)
输出
[1, 2, 3, 4, 5]
Code language: JSON / JSON with Comments (json)
在这个例子中,我们没有将深度参数传递到 flat()
方法中,因此深度默认值为 1。flat()
方法将嵌套数组 [3,4,5] 中的所有元素连接到新数组的元素。
请注意,flat()
方法创建了一个新数组,不会改变原始数组
console.log(numbers);
Code language: JavaScript (javascript)
输出
[ 1, 2, [ 3, 4, 5 ] ]
Code language: JavaScript (javascript)
以下示例扁平化了一个具有两级深度的数组
const numbers = [1, 2, [3, 4, 5, [6, 7]]];
const flatNumbers = numbers.flat(2);
console.log(flatNumbers);
Code language: JavaScript (javascript)
输出
[1, 2, 3, 4, 5, 6, 7]
Code language: JavaScript (javascript)
当您不知道深度级别时,可以将 Infinity
传递到 flat()
方法中,以递归地将所有子数组的元素连接到新数组中
const numbers = [1, 2, [3, 4, 5, [6, 7, [8, 9]]]];
const flatNumbers = numbers.flat(Infinity);
console.log(flatNumbers);
Code language: JavaScript (javascript)
如果数组包含空槽,可以使用 flat()
方法删除这些空槽,如下所示
const numbers = [1, 2, , 4, , 5];
const sequence = numbers.flat();
console.log(sequence);
Code language: JavaScript (javascript)
输出
[ 1, 2, 4, 5 ]
Code language: JavaScript (javascript)
摘要
- 使用
Array.prototype.flat()
方法来扁平化包含嵌套数组的数组。 - 使用
depth
参数指定应该扁平化嵌套数组的深度。深度默认值为 1。 flat()
还会删除包含空槽的数组中的空槽。
本教程是否有帮助?