1.递归的理解:递归就是自己调用自己,比如:
//我要把下面这个数组里的id和title改为key和label
/**用递归*/
let arr = [
{
id: 1,
title: '标题1',
children: [
{
id: 11,
title: '标题1-1',
},
{
id: 12,
title: '标题1-2',
}
]
},
{
id: 2,
title: '标题2',
children: [
{
id: 21,
title: '标题2-1',
},
{
id: 22,
title: '标题2-2',
}
]
}
]
//封装一个方法(递归函数):
handleArr = (arr) =>{
let newArr = arr.map(item =>{
return{
key:item.id,
label:item.title,
children:item.children?this.handleArr(item.children):''//在这调用了自己
}
})
return newArr
}
//这样写的children的话,得到的结果会有一个children为'',如果不想它出现可以把children拿出来做判断在放进去
第二种方法:不用递归
let newArr = []
arr.forEach(item =>{
newArr .push({
key:item.id,
label:item.title,
children:item.children.map( child =>{
return{
key:child .id,
label:child .title,
}
})
})
})
console.log(new)