js 递归 (面试题)

JavaScript010

js 递归 (面试题),第1张

一、1×2×3×4×5......×n 阶乘

执行步骤:

二、斐波那契数列(兔子序列) 1、1、2、3、5、8、13、21......

执行步骤:

三、递归遍历商品列表

数据对象

用foreach 遍历每一个对象

首先先解释一下什么是递归函数:什么是递归方法:就是一个方法,自己调用自己

但是一定要注意控制好合适的跳出,不然就会死循环,如图:

所以我们平时一定要注意,递归函数里调用函数本身的时候一定要要合理的控制循环跳出的语句;比如我们来看一题很经典的面试题,请用递归方法算出1-20之间每个数的和

 function calc(num){

            //这个if是退出递归的条件

            if(num===1) {    //如果没有这个if条件

                return num

            }

            return num + calc(num-1)  //

        }

console.log(calc(3))  //这里为了方便我们理解我们可以先用num===3替代进去,具体的方式以及步骤分解可以看图:

如果有大佬有更好的理解方法,可以留言或者私信哦,互相学习,互相进步~~~

function removeWithoutCopy(arr, item) {

    if(arr.indexOf(item)==-1){

        return arr

    }else{

        arr.splice(arr.indexOf(item),1)

        return removeWithoutCopy(arr,item)

    }

}

加个return