thi*_*o89 2 javascript recursion function
我需要编写一个递归函数,该函数应返回给定数组中的最大数字,我正在使用方法.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
Run Code Online (Sandbox Code Playgroud)
您需要返回递归的结果:
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)
return findMax(arr)
}
else{
arr.splice(0,1)
return findMax(arr)
}
}
y = findMax([1,6,8,2,10,5]);
console.log(y)Run Code Online (Sandbox Code Playgroud)
如果您正在寻找更简单的方法,则另一种选择是直接与递归的结果进行比较并返回最大的:
function findMax(arr){
// This function returns the largest number in a given array
if (arr.length <=1) return arr[0]
let [head, ...rest] = arr
let rec = findMax(rest)
return head > rec ? head : rec
// or just:
// return Math.max(head, findMax(rest))
}
y = findMax([10, 9, 14, 3, 1, -2]);
console.log(y)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |