Javascript 展平锯齿状多维阵列
我需要帮助将阵列展平,如下所示:Javascript 展平锯齿状多维阵列,javascript,multidimensional-array,Javascript,Multidimensional Array,我需要帮助将阵列展平,如下所示: [1,2,[2,3],[5,[6,1],4],7] 我希望它是这样的 [1,2,2,3,5,6,1,4,7]. 我搜索过类似的内容,找到了[].concat.apply,但它只处理二维数组 我还想使用一种算法,它适用于任何交错的多维数组。请帮忙。Thx我的建议是依赖并使用该函数 _.flattenDeep([1,2,[2,3],[5,[6,1],4],7]) // [ 1, 2, 2, 3, 5, 6, 1, 4, 7 ] 如果您想编写自己的函数,您可能想
[1,2,[2,3],[5,[6,1],4],7]
我希望它是这样的
[1,2,2,3,5,6,1,4,7].
我搜索过类似的内容,找到了[].concat.apply
,但它只处理二维数组
我还想使用一种算法,它适用于任何交错的多维数组。请帮忙。Thx我的建议是依赖并使用该函数
_.flattenDeep([1,2,[2,3],[5,[6,1],4],7])
// [ 1, 2, 2, 3, 5, 6, 1, 4, 7 ]
如果您想编写自己的函数,您可能想看看lodash实现
在伪代码中,有一种递归方法:
result = []
function flatten(array)
for each element in array
if element is array
flatten(element)
else
result.append(element)
编辑
这里有一种“手工”的方法,不过我绝对推荐使用经过更好测试的lodash实现
函数展平(arr,结果){
如果(结果===未定义){
结果=[];
}
对于(变量i=0;i //[1,2,2,3,5,6,1,4,7]
我的建议是依赖并使用该函数
_.flattenDeep([1,2,[2,3],[5,[6,1],4],7])
// [ 1, 2, 2, 3, 5, 6, 1, 4, 7 ]
如果您想编写自己的函数,您可能想看看lodash实现
在伪代码中,有一种递归方法:
result = []
function flatten(array)
for each element in array
if element is array
flatten(element)
else
result.append(element)
编辑
这里有一种“手工”的方法,不过我绝对推荐使用经过更好测试的lodash实现
函数展平(arr,结果){
如果(结果===未定义){
结果=[];
}
对于(变量i=0;i //[1,2,2,3,5,6,1,4,7]
您可以将concat包装起来。将应用到循环中以处理深度嵌套的数组:
while (a.some(Array.isArray))
a = [].concat.apply([], a)
或者在ES6语法中:
while (a.some(Array.isArray))
a = [].concat(...a);
您可以将concat.apply
对象包装在一个循环中,以处理深度嵌套的数组:
while (a.some(Array.isArray))
a = [].concat.apply([], a)
或者在ES6语法中:
while (a.some(Array.isArray))
a = [].concat(...a);
您可能想告诉我们您使用的是什么编程语言。sry我指的是Javascript您可能想告诉我们您使用的是什么编程语言。sry我指的是javascriptthx,但这个问题与网站上的一个问题有关。我只能用香草解决它javascript@nova_n为什么不能使用lodash?只需将
添加到HTML的
部分。此网站仅允许vanila javascript进行培训。Thanx用于手动解决thothx,但此问题与网站上的问题有关。我只能用香草解决它javascript@nova_n为什么不能使用lodash?只需将
添加到HTML的
部分。此网站仅允许vanila javascript用于培训。Thanx用于手动解决方案tho