【今日问题】输入[1,2,3],输出层级{name:1,child:child:{name:3}
邵预鸿 Lv5

使用reduce实现

1
2
3
4
5
6
7
8
9
10
11
12
<script>
var arr = [1,2,3];
var obj = arr.slice().reverse().reduce((opt,item)=>{
if(opt){
return {name:item,child:opt}
}else{
return { name:item}
}
},null);
console.log(obj);

</script>

使用递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function formatter(arr){
if(arr.length){
let current = arr.shift();
if(arr.length ===0){
return {
name:current
}
}
return {
name:current,
child:formatter(arr)
}
}
return {};
}
console.log(formatter(arr.concat()));

感谢余大佬提点

  • 本文标题:【今日问题】输入[1,2,3],输出层级{name:1,child:child:{name:3}
  • 本文作者:邵预鸿
  • 创建时间:2021-02-21 12:39:00
  • 本文链接:/images/logo.jpg2021/02/21/【今日问题】输入-1-2-3-,输出层级-name-1-child-child-name-3/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!