1.递归的概念
在程序中函数直接或间接调用自己
注意:使用递归函数一定要注意,一定要有个条件让他停止,不然就会进入死循环。
2.递归方式改变数据的字段1-例子
原数据是数组,数组里面是不断嵌套的对象,关键在于你不知道对象嵌套几层,
如果原数据的字段name,age,list,都需要改成对应的label,value,children
以下贴代码
const options = [
{
age: '12',
name: 'Zhejiang',
list: [
{
age: '34',
name: 'Hangzhou',
list: [
{
age: '3',
name: 'West Lake',
},
],
},
],
},
{
age: '45',
name: 'Jiangsu',
list: [
{
age: '2',
name: 'Nanjing',
list: [
{
age: '56',
name: 'Zhong Hua Men',
},
],
},
],
},
];
递归函数
function render(data) {
return data ? data.map(item => {
return {
value: item.age,
label: item.name,
children: render(item.list)
}
}): null
}
const result = render(options);
3.递归的方法,要得到name值的一组数组
function renderData(data, arr) {
return data ? data.map((item,index) => {
arr.push(item.name)
renderData(item.list, arr)
return arr
}) : null
}
const result = renderData(options,[]);
console.log(result[0],'result')