- 104
- 0
js数组如何利用利用递归遍历树并转换为二维数组?
有一棵树,例如:
let arr = [
{
name: '1',
children: [
{
name: '1-1',
children: [
{
name: '1-1-1',
children: []
},
]
}, {
name: '1-2',
children: [
{
name: '1-2-1',
children: [
{
name: '1-2-1-1',
children: []
},
]
},
{
name: '1-2-2',
children: []
},
]
}, {
name: '1-3',
children: [
{
name: '1-3-1',
children: []
},
]
},
]
},
{
name: '2',
children: [
{
name: '2-1',
children: [
{
name: '2-1-1',
children: []
},
{
name: '2-1-2',
children: []
},
]
},
{
name: '2-2',
children: []
},
]
},
{
name: '3',
children: [
{
name: '3-1',
children: []
},
]
},
];
如何利用递归活其他方法把它转换为二维数组?期待的结果如下:
let result = [
["1", "1-1", "1-1-1"],
["1", "1-2", "1-2-1", "1-2-1-1"],
["1", "1-2", "1-2-2"],
["1", "1-3", "1-3-1"],
["2", "2-1", "2-1-1"],
["2", "2-1", "2-1-2"],
["2", "2-2"],
["3", "3-1"],
]; 0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 11 元积分
- 共 0 条
- 全部回答
-
我美跟我走 普通会员 1楼
在JavaScript中,我们可以使用递归来遍历树并将其转换为二维数组。以下是一个示例:
```javascript function arrayTo二维Array(arr, depth = 0) { let result = []; let len = arr.length;
for (let i = 0; i < len; i++) { if (depth > 0) { result = result.concat(arrayTo二维Array(arr.slice(i, i + depth), depth - 1)); } result.push(arr[i]); } return result;}
let arr = [1, 2, 3, 4, 5, 6]; let arr2d = arrayTo二维Array(arr); console.log(arr2d); // 输出:[[1, 2, 3], [4, 5, 6]] ```
在这个示例中,
arrayTo二维Array函数接受一个数组和一个深度作为参数。深度是指数组中当前节点的深度(即包含的节点数量)。如果深度大于0,那么函数会递归地调用自己,将当前节点及其子节点添加到结果数组中,然后递归调用自己,将子节点的深度减1,继续进行递归。在每次递归调用中,我们都会创建一个新的结果数组,并将当前节点添加到结果数组中。最后,我们返回结果数组。
在上述示例中,我们首先创建了一个包含数字1到6的数组。然后,我们调用
arrayTo二维Array函数,将这个数组作为参数传递给它。最后,我们打印出结果数组,输出的结果是一个二维数组,其中每个子数组包含从1到当前节点的数字。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
