编辑代码

//1.找出简单的基线条件
//2.确定如何缩小问题规模,使其达到基线条件

//数组求和
const list1  = [1,2,3,4];
function sum(arr){
    if(arr.length === 0) return 0; //base case
    else if(arr.length === 1) return arr[0];//base case
    else{ //recursive case
        return arr[0] + sum(arr.slice(1,arr.length)); // 降低处理规模直至触发基线条件
    }
}
//console.log(sum(list1))
//查找最大的数
function max(arr){
    if(arr.length === 1){
        return arr[0];
    }else{
        let item = max(arr.slice(1,arr.length));
        return item > arr[0] ? item : arr[0] 
    }
}
let list2 = [1,2,5,4,3,2,0,-1,10]
console.log(max(list2))