【发布时间】:2018-11-27 19:12:02
【问题描述】:
任务:有人给你一个乱七八糟的数组!将此多维数组转换为单个数组。 我知道如何将二维数组转换为单个数组。 如何将多维数组转换为单个数组?
我的二维数组有一个自己的数组。
例如,如果给你一个这样的数组,我如何将整个数组转换为单个数组?
arr = [[1,[2]],[3,[4]],[5,[6]],[7,[8]]] ==> [1,2,3,4,5,6,7,8]
前:
function mergeArrays(arr) {
var inOne = arr.reduce(function(a,b) {
return a.concat(b); // works well with 2-dimension, but not this problem.
})
return inOne;//output is [1,Array(1),3,Array(1),1,5,Array(1),2,7,Array(1),3]
} // I need just one array. like this => [1,2,3,4,5,6,7,8]
mergeArrays([[1,[2]],[3,[4]],[5,[6]],[7,[8]]]);
// should equal arr = [[1,[2]],[3,[4]],[5,[6]],[7,[8]]] => [1,2,3,4,5,6,7,8]
我想我要问的是如何将任意维度的数组转换为单个数组。
我已经使用了 concat 和扩展运算符,如果我正在处理二维数组,它会很好,但如果我的二维数组有自己的数组,则不会。
你会怎么解决这个问题?
【问题讨论】:
-
import flattenDeep from "lodash/flattenDeep"; flattenDeep(arr);
标签: javascript arrays multidimensional-array flatten