在本文中,我们将探索如何使用不同的方法在 JavaScript 中展平数组。以下是常见的方法:
- 使用
reduce()
方法 - 使用
flat()
方法 - 使用
flatmap()
方法 - 使用
concat()
方法和扩展运算符
让我们开始吧。
使用reduce()
方法
该reduce()
方法是一个 JavaScript 数组方法,它遍历数组的元素并将其缩减为单个值。它有两个参数:回调函数(在数组的每个元素上执行)和一个可选的初始值。回调函数接收累加器和当前元素,并返回更新后的累加器。
下面是演示如何使用该方法展平数组的代码示例reduce()
:
const nestedArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const newFlattenedArray = nestedArray.reduce((accumulator, currentArray) => {
return accumulator.concat(currentArray);
}, []);
console.log(newFlattenedArray); // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
代码解释
我们声明一个常量 namednestedArray
并将其分配给一个数组数组。每个内部数组都包含三个元素。
我们创建一个常量变量 callednewFlattenedArray
并将其分配给将reduce()
方法应用于nestedArray
.
该reduce()
方法被调用nestedArray
并遍历数组的每个元素。该reduce()
方法有两个参数;回调函数和累加器的初始值。累加器的初始值设置为空字符串,该方法将使用它reduce()
作为累加的起点。
传入reduce()
方法的回调函数也有两个参数;accumulator
和currentArray
。累加器是每次迭代后返回并累加的值,currentArray
是reduce方法每次迭代中正在处理的数组的当前元素。
在回调函数中,该concat()
方法用在 上accumulator
,并将 用作currentArray
参数。该concat()
方法用于将不同数组的元素组合成一个新数组。
在 ) 方法的每次迭代中reduce(
,currentArray
与现有累加器数组组合,生成一个新数组(或单个展平数组),其中包含nestedArray
.
然后,我们将输出记录flattenedArray
到控制台。
使用flat()
方法
该flat()
方法是一个 JavaScript 数组方法,它通过连接原始数组中的所有子数组来创建一个新数组。该flat()
方法有一个可选参数,指定展平的深度,如果没有指定深度,则默认为 1。
下面是演示如何使用该方法展平数组的代码示例flat()
:
const nestedArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const newFlattenedArray = nestedArray.flat();
console.log(newFlattenedArray); // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
代码解释
我们声明一个常量 namednestedArray
并为其分配一个具有三个内部数组的嵌套数组的值。
我们创建一个名为 called 的常量变量,并将其分配给在 上newFlattenedArray
应用该方法的结果。flat()
nestedArray
flat()
调用该方法nestedArray
并将内部数组中的所有元素连接到一个数组中。
然后我们将输出记录newFlattenedArray
到控制台。
使用flatMap()
方法
该flatMap()
方法是一个 JavaScript 数组方法,它通过对数组的每个元素应用回调函数来创建一个新数组。
下面是演示如何使用该方法展平数组的代码示例flatMap()
:
const nestedArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const newFlattenedArray = nestedArray.flatMap(innerArray => innerArray);
console.log(newFlattenedArray); // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
代码解释
我们声明一个常量 namednestedArray
并为其分配一个具有三个内部数组的嵌套数组的值。
我们创建一个名为 called 的常量变量,并将其分配给在 上newFlattenedArray
应用该方法的结果。flatMap()
nestedArray
该flatMap()
方法被调用nestedArray
并迭代 的每个元素nestedArray
。它还采用回调函数(innerArray => innerArray)
作为参数,该函数采用的每个元素nestedArray
并返回单个元素 innerArray。然后将嵌套数组展平为单个展平数组。
然后我们将结果记录newFlattenedArray
到控制台。
使用concat()
方法和扩展运算符
该concat()
方法是一个 JavaScript 数组方法,用于连接两个或多个数组并返回一个新数组。
下面是演示如何使用该方法展平数组的代码示例concat()
:
const nestedArray = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const newFlattenedArray = [].concat(...nestedArray);
console.log(newFlattenedArray); // Output: [1, 2, 3, 4, 5, 6, 7, 8, 9]
代码解释
我们声明一个常量 namednestedArray
并将其分配给一个数组数组,每个内部数组包含三个元素。
我们创建一个常量变量 called并将其分配给使用方法和扩展运算符newFlattenedArray
连接元素的结果。nestedArray
concat()
(...)
该concat()
方法在空数组 ([]) 上调用,并将作为参数传递的元素(从 nestedArray 展开)连接到空数组。spread 方法(...nestedArray)
用于将每个内部数组的元素作为该concat()
方法的参数展开。
这会生成一个新数组,其中包含连接在一起的嵌套数组中的所有元素。
然后我们将输出记录newFlattenedArray
到控制台。