在 JavaScript 中,数组是一个非常重要的数据结构,它可以存储多个数据项,并可以通过索引访问这些数据项。在实际开发中,经常会遇到需要将多个数组合并成一个数组的情况,这就需要使用 Flatten 数组。
Flatten 数组是指将一个嵌套的数组结构转换成一个一维数组的过程。在 ES10 中,JavaScript 提供了一个新的方法 flat(),可以方便地实现 Flatten 数组。
flat() 方法
flat()
方法可以将一个嵌套的数组结构转换成一个一维数组,并返回这个一维数组。flat()
方法可以接收一个参数,用于指定要展开的嵌套层数,默认值为 1。
示例代码如下:
const arr = [1, 2, [3, 4]]; const flattenedArr = arr.flat(); console.log(flattenedArr); // [1, 2, 3, 4]
在上面的代码中,arr
数组中包含一个嵌套的数组 [3, 4]
,调用 flat()
方法后,将这个嵌套的数组展开,并返回一个新的一维数组。
如果数组中包含多层嵌套的数组,可以通过指定 flat()
方法的参数来展开多层嵌套的数组。示例代码如下:
const arr = [1, 2, [3, [4, 5]]]; const flattenedArr = arr.flat(2); console.log(flattenedArr); // [1, 2, 3, 4, 5]
在上面的代码中,arr
数组中包含一个嵌套的数组 [3, [4, 5]]
,这个嵌套的数组中还包含一个嵌套的数组 [4, 5]
。调用 flat(2)
方法后,将这个嵌套的数组展开,展开两层嵌套的数组,并返回一个新的一维数组。
flatMap() 方法
flatMap()
方法是 map()
方法和 flat()
方法的组合,可以将一个数组中的每个元素应用一个函数,然后将结果展开成一个一维数组。
示例代码如下:
const arr = [1, 2, 3]; const flattenedArr = arr.flatMap(num => [num, num * 2]); console.log(flattenedArr); // [1, 2, 2, 4, 3, 6]
在上面的代码中,arr
数组中包含三个元素 [1, 2, 3]
,调用 flatMap()
方法后,将每个元素都应用一个函数,函数返回一个包含两个元素的数组 [num, num * 2]
,然后将这个数组展开,并返回一个新的一维数组。
总结
Flatten 数组是将一个嵌套的数组结构转换成一个一维数组的过程。在 ES10 中,JavaScript 提供了 flat()
方法和 flatMap()
方法,可以方便地实现 Flatten 数组。flat()
方法可以将一个嵌套的数组结构展开成一个一维数组,flatMap()
方法可以将一个数组中的每个元素应用一个函数,并将结果展开成一个一维数组。在实际开发中,Flatten 数组常常用于将多个数组合并成一个数组的情况。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/663e036ed3423812e4c2b9bd