JavaScript 如何展开数组

JavaScript 如何展开数组

介绍:

将数组展开的技术将数组的n维度减少为1维度。简单来说,就是将多个嵌套数组合并成一个单一的数组,创建一个单一的一维数组。

只减少数组的维度就被称为展开数组。该方法涉及将数组中所有嵌套的组件合并为一个一维数组。

示例:

Original Array : [5,7,[2,1,10],[9,3,4,8],6] 
Flattened Array : [5,7,2,1,10,9,3,4,8,6]

使用concat()和apply()在JavaScript中压平数组

该函数通过使用concat()和apply()方法在JavaScript中压平一个数组。

在JavaScript中的实现

arr = [1,2,[3,4,5],[6,7,8,9],10] 
console.log("Original Array: ",arr)
let flattened_array = [].concat.apply([], arr);
console.log("Flattened Array: ", flattened_array)

输出:

Original Array:  [ 1, 2, [ 3, 4, 5 ], [ 6, 7, 8, 9 ], 10 ]
Flattened Array:  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

工作机制:

首先,我们创建一个数组,我们希望将其展平。然后使用 concat()apply() 方法来展平数组。concat()函数将参数数组作为参数应用后将结果连接起来,从而将数组减少到一维。现在我们打印出展平后的数组。

使用ES6中的扩展运算符在JavaScript中展平数组的程序

通过这种技术,我们将使用ES6中的 扩展运算符 来展平JavaScript数组。

JavaScript中的实现:

arr = [1,2,[3,4,5],[6,7,8,9],10] 
console.log("Original Array: ",arr)
let flattened_array=  [].concat(...arr);
console.log("Flattened Array: ", flattened_array)

输出:

Original Array:  [ 1, 2, [ 3, 4, 5 ], [ 6, 7, 8, 9 ], 10 ]
Flattened Array:  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

工作机制:

在第一步中,我们构建了一个我们想要展平的数组。然后使用 ES6中的Spread Operator (‘…’) 将数组展平。当在展平数组之前使用 Spread Operator “…” 时, concat() 函数将连接结果以创建一个单一的数组。我们现在已经打印出展平后的数组。

使用reduce方法展平数组的JavaScript程序

使用 reduce 方法,我们将展平一个JavaScript数组。

JavaScript实现:

arr = [1,2,[3,4,5],[6,7,8,9],10] 
console.log("Original Array: ",arr)
let flattened_array = arr.reduce((acc, val) => {
    return acc.concat(val)
}, []);
console.log("Flattened Array: ", flattened_array)

输出:

Original Array:  [ 1, 2, [ 3, 4, 5 ], [ 6, 7, 8, 9 ], 10 ]
Flattened Array:  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

工作机制:

我们首先构建了一个数组,我们希望将其展平。然后,我们使用reduce方法展平了数组。现在我们打印了展平后的数组。

使用forEach()方法展平数组的JavaScript程序

在这个程序中,我们将使用 forEach() 循环来展平JavaScript中的一个数组。

javascript中的实现:

const arr = [[1,2],[3,4,5],[6,7,8,9],[10]];
console.log("Original Array: ",arr)
const flattened_array = []
arr.forEach(array => {
flattened_array.push(...array);
});
console.log("Flattened Array: ", flattened_array)

输出:

Original Array:  [ [ 1, 2 ], [ 3, 4, 5 ], [ 6, 7, 8, 9 ], [ 10 ] ]
Flattened Array:  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

工作机制:

第一步,我们建立了一个数组,我们希望将其展平。然后使用 forEach() 循环来展平这个数组。我们在 forEach() 循环内部使用 扩展运算符 ‘…’ 来展平数组。现在我们已经打印出了展平后的数组。

使用Reduce、Concat和IsArray在JavaScript中展平一个数组的程序

这种方法通过反复使用 reduce()、concat()isArray() 方法来展平JavaScript中的数组。

JavaScript实现:

const arr = [1,2,[3,4,5],[6,7,8,9],10] 
console.log("Original Array: ",arr)
function flatten (arr) {
      var flattened_arr = [];
for (var i = 0; i

输出:

Original Array:  [ 1, 2, [ 3, 4, 5 ], [ 6, 7, 8, 9 ], 10 ]
Flattened Array:  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

工作机制:

我们首先构建一个数组,我们想要将其展开。然后使用 concat()isArray() 函数将数组展开。在此之后, concat() 函数使用 isArray() 方法逐个将数组的项作为参数进行拼接,以创建一个单一的数组。我们现在打印了展开的数组。

使用while循环和递归辅助函数展开数组的JavaScript程序

这种方法通过使用 while 循环和一个 递归辅助 函数来展开JavaScript中的数组。

JavaScript中的实现:

const arr = [1,2,[3,4,5],[6,7,8,9],10] 
console.log("Original Array: ",arr)
const flatten = (nested) => {
const flattened_array = [];
const helper = (array) => {
    let counter = 0
while (counter 

输出:

Original Array:  [ [ 1, 2 ], [ 3, 4, 5 ], [ 6, 7, 8, 9 ], [ 10 ] ]
Flattened Array:  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

工作机制:

第一步,我们构建了一个我们想要展平的数组。然后,使用 stackisArray() 函数对数组进行了展平。通过 isArray() 函数,我们将一个数组作为参数,每次取出一个元素。如果提供的参数值包含多个元素,我们将使用 spread 操作符展平数组,并将额外的元素推入堆栈。否则,如果传入的参数只包含一个元素,我们将直接将该元素添加到最终的列表中。最后,我们返回展平后的数组的反转形式。

JavaScript中使用生成器函数展平数组的程序

这种方法通过使用 generator 函数在JavaScript中展平一个数组。

在JavaScript中的实现:

const arr = [1,2,[3,4,5],[6,7,8,9],10]; 
console.log("Original Array: ",arr)
function* flatten(array, depth) {
if(depth === undefined) {
      depth = 1;
    }
for(const val of array) {
if(Array.isArray(val) && depth > 0) {
          yield* flatten(val, depth - 1);
        } else {
          yield val;
        }
    }
}
const flattened_arr = [...flatten(arr, Infinity)];
console.log("Flattened Array: ", flattened_arr)

输出:

Original Array:  [ 1, 2, [ 3, 4, 5 ], [ 6, 7, 8, 9 ], 10 ]
Flattened Array:  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

工作机制:

我们首先构建一个数组,我们想要将其扁平化。然后使用一个 生成器(generator) 函数来将数组扁平化。参数数组和深度是生成器函数将使用的两个参数。深度表示数组的最大维度。在生成器函数内部,使用 yield 关键字来启动或停止生成器函数。该函数总是使用术语 “yield” 来返回它接收的任何值。现在已经打印了已经扁平化的数组。

JavaScript中使用flat()方法来扁平化数组的程序

该技术使用 flat() 函数来扁平化JavaScript中的数组。这里,我们可以看到一个 错误arr 。只有 NodeJS 支持 flat() 函数,很多浏览器不支持,并且flat不是一个函数。

JavaScript中的实现:

const arr = [1,2,[3,4,5],[6,7,8,9],10] 
console.log("Original Array: ",arr)
flattened_arr = arr.flat();
console.log("Flattened Array: ", flattened_arr)

输出:

Original Array:  [ 1, 2, [ 3, 4, 5 ], [ 6, 7, 8, 9 ], 10 ]
Flattened Array:  [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]

工作机制:

在第一步中,我们构建了一个数组,并希望将其展开。然后使用 flat() 函数将数组展开。使用 flat() 函数来展开并返回数组,该函数接受一个数组作为输入。我们现在打印展开后的数组。

结论

在我们讨论了JavaScript中几种展平数组的方法之后,我们可以得出以下结论。

  • 展平数组的过程将其维度从 n 维度减少到 一维
  • 将整个数组的嵌套元素移除并合并为一个一维数组。
  • 当生成器函数返回任何值时,它会借助 yield 关键字。这个 yield 关键字用于 重新启动暂停 生成器函数。
  • 虽然 NodeJS 支持 flat() 方法,但很多浏览器不支持,可能会导致错误。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程