简单数组递归而不是while
simple array recursive instead of while
代码采用javascript。最高函数的目标是返回数组g中最大的数字。我希望它是递归的,不使用while循环或for循环。所以返回值应该是732。///编辑。。。我知道先排序,然后弹出最后一项是最好的方法,但我只是在练习递归函数,太懒了。我理解quicksort和mergesort。当时是凌晨200点,所以我累了。
function highest(arr, index, largest)
{
var largest = largest || arr[0];
if(index < arr.length)
{
if(arr[index] > arr[0])
{
largest = arr[index];
return highest(arr, index + 1, largest)
}
else
{
return highest(arr,index + 1, largest)
}
}
return largest;
}
var g = [2,22,332,4,5,6,732,3,2,3];
console.log(highest(g, 0))
更新此行:
if(arr[index] > arr[0])
带有
if(arr[index] > largest)
我不会讨论您为什么要这样做,以及它可以通过其他方式实现。我想你想做一个递归排序,所以我只是建议一个更优雅的方法。
function highest(arr, largest)
{
largest = largest < arr[0] ? arr[0] : largest;
if (arr.length == 1) {
return largest;
}
arr.shift();
return highest(arr,largest);
}
递归并不总是效率的答案。作为一个例子,我给出了斐波那契序列。您需要创建某种类型的记忆对象,以避免重复计算。您仍然可以使用快速排序算法来获取数组中的最后一项
但最好使用@UniversE 的简单形式
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- 在 while 循环中选择与整数值对应的数组
- While循环未将正确的结果推送到数组
- 简单数组递归而不是while
- Javascript:通过在while循环内推送/拼接来随机化数组
- Javascript 初学者帮助 - 数组、while 和 for 循环
- Javascript-在while循环结束后仅显示数组中的最后一个值
- JS while 循环数组[i++].它是如何工作的
- 在JavaScript中有更好的方法吗?使用while进行数组搜索
- 如何让while循环将其结果存储在数组中,并重复10次
- 如何从while循环中生成/获取数组
- Javascript:随机元素从数组,做While
- JQuery while-loop在使用inArray比较优化数组内容时变得无响应
- 多维数组-用于获取记录信息的javascript while循环