找出最小的那个
代码:
let min = (numbers) =>{
return min(
[numbers[0], min(numbers.slice(1))]
)
}
这个代码会死循环不停的调用自己,需要添加一个中止条件
修改代码:
let min = (numbers) =>{
if(numbers.length > 2){
return min(
[numbers[0], min(numbers.slice(1))]
)
}else{
return Math.min.apply(null, numbers)
}
}
递归:先递进再回归
min([2,4,3,1])
= min([2,min([4,3,1])])
= min([2,min([4,min([3,1])])])
= min([2,min([4,Math.min.apply(null,[3,1])])])
= min([2,min(4,1)])
= min([2,1])
= 1