【发布时间】:2019-05-09 04:25:46
【问题描述】:
我需要编写一个递归函数,它应该返回给定数组中的最大数, 我正在使用 .splice() 方法来删除较小的数字。当我的数组中只有一个元素时,我将返回该元素女巫将是数组中的最大数字
逻辑似乎有效,但没有返回任何东西,有什么想法吗?
function findMax(arr){
// This function returns the largest number in a given array
if (arr.length === 1){
const bigNum = arr.pop();
return bigNum
}
else if (arr[0] > arr[1]){
arr.splice(1,1)
findMax(arr)
}
else{
arr.splice(0,1)
findMax(arr)
}
}
y = findMax([1,6,8,2,10,5]);
y
undefined
【问题讨论】:
-
一个观察,需要在每次递归调用前加上
return,例如:return findMax(arr); -
你为什么要使用
splice?如果您只想找到最大值,则无需修改数组。 -
此外,在不需要的地方使用递归并不是一个好主意。我建议使用
.reduce()
标签: javascript function recursion