js递归运用

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')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值