为什么我的递归函数返回“未定义”?

普拉尚特·蒂亚加

该函数正在返回undefined,它是一个简单的 JavaScript 二进制搜索代码。当我检查一个console.log()函数时,它确实在工作。下面是我的源代码:

var array=[1,2,3,2,4,5,6,8,7,8,9];
var searching= 3;
var starting = 0;
var ending = array.length-1;

var result = binarysearch(array,searching,starting,ending);
console.log(result); // throws undefined

function binarysearch(data,target,start,end){

var mediane = Math.round((start+end)/2);

if (data[mediane] == target) return mediane;  // console.log(mediane) gives 2 
if (data[mediane] > target) binarysearch(data,target,start,mediane-1);
if (data[mediane] < target) binarysearch(data,target,mediane+1,end);
大熊猫

很简单的。使用return遵循调用堆栈。

var array=[1,2,3,2,4,5,6,8,7,8,9];
var searching= 3;
var starting = 0;
var ending = array.length-1;

var result = binarysearch(array,searching,starting,ending);
console.log(result); // throws undefined


function binarysearch(data,target,start,end){

var mediane = Math.round((start+end)/2);

if(data[mediane] == target) return mediane;  // console.log(mediane) gives 2 
if ( data[mediane] > target) return binarysearch(data,target,start,mediane-1);
if ( data[mediane] < target) return binarysearch(data,target,mediane+1,end);

}

解释:

当您使用递归调用时,控制权会从一个函数分支转移到另一个函数分支。为了返回一个确定的值,你需要传递控制(函数上下文,或者知道程序现在在哪里执行的东西)。你没有返回递归分支;这意味着执行堆栈正在创建一个新函数,并且由于它没有获得输出,因此将其视为一个单独的分支。

当您执行 时return,上下文知道它必须将函数分支出来并使用最终返回值:在本例中为2我希望这有帮助!:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的递归函数返回未定义?

来自分类Dev

为什么此递归函数返回未定义?

来自分类Dev

为什么返回值在我的递归函数中变得未定义?

来自分类Dev

为什么函数返回未定义?

来自分类Dev

为什么我的变量在我的函数之外未定义?

来自分类Dev

为什么我的API调用函数返回未定义的对象?

来自分类Dev

为什么我的简单Java OOP游戏中的内部函数返回未定义的状态

来自分类Dev

为什么我的函数会返回未定义以及反向字符串

来自分类Dev

为什么我的d3映射函数返回未定义的源属性?

来自分类Dev

为什么我的函数返回一个未定义的数组作为项目?

来自分类Dev

为什么我的函数(调用时)总是以未定义的形式返回?

来自分类Dev

为什么我在 Firebase 中收到此错误“函数返回未定义、预期的承诺或值”

来自分类Dev

为什么此函数返回未定义?

来自分类Dev

为什么箭头函数返回未定义

来自分类Dev

为什么此异步函数返回未定义?

来自分类Dev

为什么此函数返回未定义?

来自分类Dev

为什么 JS Map 函数返回未定义?

来自分类Dev

为什么我的find方法返回未定义?

来自分类Dev

为什么我的变量在javascript中返回未定义?

来自分类Dev

为什么我的reducer返回未定义的React TypeScript

来自分类Dev

为什么我的变量表数据返回未定义?

来自分类Dev

为什么我得到未定义的构造函数

来自分类Dev

为什么我变得未定义不是函数,ReactJs

来自分类Dev

为什么我的函数未定义且未加载

来自分类Dev

为什么在调用我的函数时未定义它?

来自分类Dev

为什么我的MySQL函数不断变得“未定义”?

来自分类Dev

为什么我得到未定义的不是函数?

来自分类Dev

为什么我的反应通量函数未定义?

来自分类Dev

为什么我的 javascript 抛出函数未定义错误?

Related 相关文章

  1. 1

    为什么我的递归函数返回未定义?

  2. 2

    为什么此递归函数返回未定义?

  3. 3

    为什么返回值在我的递归函数中变得未定义?

  4. 4

    为什么函数返回未定义?

  5. 5

    为什么我的变量在我的函数之外未定义?

  6. 6

    为什么我的API调用函数返回未定义的对象?

  7. 7

    为什么我的简单Java OOP游戏中的内部函数返回未定义的状态

  8. 8

    为什么我的函数会返回未定义以及反向字符串

  9. 9

    为什么我的d3映射函数返回未定义的源属性?

  10. 10

    为什么我的函数返回一个未定义的数组作为项目?

  11. 11

    为什么我的函数(调用时)总是以未定义的形式返回?

  12. 12

    为什么我在 Firebase 中收到此错误“函数返回未定义、预期的承诺或值”

  13. 13

    为什么此函数返回未定义?

  14. 14

    为什么箭头函数返回未定义

  15. 15

    为什么此异步函数返回未定义?

  16. 16

    为什么此函数返回未定义?

  17. 17

    为什么 JS Map 函数返回未定义?

  18. 18

    为什么我的find方法返回未定义?

  19. 19

    为什么我的变量在javascript中返回未定义?

  20. 20

    为什么我的reducer返回未定义的React TypeScript

  21. 21

    为什么我的变量表数据返回未定义?

  22. 22

    为什么我得到未定义的构造函数

  23. 23

    为什么我变得未定义不是函数,ReactJs

  24. 24

    为什么我的函数未定义且未加载

  25. 25

    为什么在调用我的函数时未定义它?

  26. 26

    为什么我的MySQL函数不断变得“未定义”?

  27. 27

    为什么我得到未定义的不是函数?

  28. 28

    为什么我的反应通量函数未定义?

  29. 29

    为什么我的 javascript 抛出函数未定义错误?

热门标签

归档