📜  js 深度展平数组 - Javascript (1)

📅  最后修改于: 2023-12-03 14:43:32.668000             🧑  作者: Mango

JS 深度展平数组 - Javascript

在编程中,经常会遇到需要将嵌套多层的数组展平为一维数组的情况。Javascript提供了一种便捷的方法来实现这个目的,即使用flat()方法。但是flat()方法只能展平一层,如果需要展平多层嵌套的数组,就需要使用递归算法。下面是一个展示如何深度展平数组的Javascript代码片段。

function deepFlatten(arr) {
  return arr.reduce((acc, val) => Array.isArray(val) ? acc.concat(deepFlatten(val)) : acc.concat(val), []);
}

上面的代码中,deepFlatten()函数接收一个数组arr作为参数。函数首先使用reduce()方法将数组展开成一个新的数组。在reduce()方法中,通过判断当前项是否为数组,如果是,则递归调用deepFlatten()函数,直到展开所有嵌套的数组。最后,将展开后的数组与累加器acc拼接在一起并返回。

可以将上面的代码片段保存为一个独立的Javascript文件,然后在需要深度展平数组的地方引入该文件,并使用deepFlatten()函数来展开数组。例如:

const arr = [1, [2, [3, 4], 5], 6];
const flattenedArr = deepFlatten(arr);
console.log(flattenedArr); // [1, 2, 3, 4, 5, 6]

如上面的代码所示,变量arr是一个多层嵌套的数组。使用deepFlatten()函数展开数组后,得到的新数组flattenedArr是一个一维数组,包含所有的元素。

到这里,我们已经学会了如何使用Javascript展开数组。快去试试吧!