首页 > 其他分享 >全面掌握递归

全面掌握递归

时间:2022-10-13 18:13:24浏览次数:29  
标签:rightMax arr return 递归 掌握 item 全面 const

定义:

  狭义上的递归就是函数自己调用自己。广义上的递归可以吧一个问题分为若干个小问题,逐个的解决小问题。

 

条件:递归方程和递归结束条件

 

一. 求n的阶乘

functin factorial(n){
  //终止条件
  if(n===1) return 1
  //递归方程
  return n * factorial(n-1)
}

二. 经典案例——斐波那契数列

function fibonacci(n){
  if(n<=1) return n
  //每一项等于前两项的和
  return fibonacci(n-1) + fibonacci(n-2)
}

  

三. 用递归求数组最大值

//用递归求数组最大值
const arr = [8,5,33,77,11,35,73,146,4,2]

function findMax(arr){
  //终止条件
  if(arr.length === 1) return arr[0]
  //将数组从中间分开
  const half = Math.floor(arr.length/2)
  //分开对比
  const left = arr.slice(0,half)
  const leftMax = findMax(left)
  
  //右边
  const right = arr.slice(half,arr.length-1)
  const rightMax = findMax(right)
  
  if(leftMax > rightMax){
    return leftMax
   }else{
    return rightMax
   }
}

  


四. 开发中的递归,利用数组获取子菜单的数据

 

let nameItem = []
function getName(values) {
  values.forEach((item)=> {
    if(item.children) {
      getName(item.children)
    }else {
      nameItem.push(item.name)
    })
    return nameItem
}
const items = getName(data)
console.log(items)
  ['青苹果','红苹果',
    '北方米饭','南方米饭',
    '联想电脑','苹果电脑',
    '锄头','锤子',
    '洗发水','沐浴露'
   ]

  

标签:rightMax,arr,return,递归,掌握,item,全面,const
From: https://www.cnblogs.com/heiheixiaohei/p/16789160.html

相关文章