首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将n级数组展平为2d数组的最佳方法

将n级数组展平为2d数组的最佳方法
EN

Stack Overflow用户
提问于 2021-05-07 18:53:43
回答 2查看 43关注 0票数 1

我知道在javascript中有很多方法可以展平数组,但我想知道将n级数组展平为2D数组的最好方法是什么

输入数组看起来像这样:[[[[1,2]]],[2,3]]我需要将它转换成[[1,2],[2,3]]

我尝试使用array.flat(),但它只展平了1步,我也尝试了array.flat(无穷大),但它将整个数组展平为一维数组

问题是我不确定我的输入数组嵌套得有多深。我可以考虑递归迭代,但我正在寻找js是否有任何优化和现成的方法来实现这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-07 18:58:51

您可以结合使用mapflat(Infinity)方法,将每个子数组展平为一维。

代码语言:javascript
复制
const flatDeep = data => data.map(e => e.flat(Infinity))
console.log(flatDeep([[[[1,2]]],[2,3]]))
console.log(flatDeep([[[[1,2]]],[2,[[[3, [4]]]]]]))

票数 2
EN

Stack Overflow用户

发布于 2021-05-07 19:02:45

Iterate数组,然后使用Array.flat(Infinity)方法。

代码语言:javascript
复制
const list = [[[[1,2]]],[2,3],[[3,4]]]
const result = [];
for (value of list) {
  result.push(value.flat(Infinity));
}
console.log(result);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67433614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档