繁体   English   中英

如何使用递归创建嵌套数组

[英]How to create nested array using recursion

我的目标是将数组转换为嵌套的多维数组。

输入: [1,2,3,4,5...n]

output: [1,[2,[3,[4,[5,[n]]]]]

提前致谢

您可以对第一项和 rest 进行解构并检查 rest 的长度并返回一个新数组,其中包含递归调用的结果或仅返回数组中的项。

 const nest = ([item, ...rest]) => rest.length? [item, nest(rest)]: [item]; console.log(nest([1, 2, 3, 4, 5]));
 .as-console-wrapper { max-height: 100%;important: top; 0; }

您可以像这样拥有 function:

function nest (arr) {
    if(arr.length === 1) return arr;
    return [arr[0], nest(arr.slice(1, 0))]
}

并像这样调用它nest([1, 2, 3, 4, 5])

ES6 中的相同代码:

let nest = ([first, ...arr]) => arr.length ? [first, nest(arr)] : [first]

我使用reverse()forEach() function 来实现这一点。

 var i = [1,2,3,4,5]; var result = []; var current = []; i.reverse().forEach((num) => { current.unshift(num); result = current; current = [current]; }) console.log(JSON.stringify(result))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM