【问题标题】:function is returning value ,result is showing undefined [duplicate]函数正在返回值,结果显示未定义 [重复]
【发布时间】:2018-07-19 21:20:19
【问题描述】:

嗨,我已经尝试过这个函数。这个函数将给出行号,直到 'b' 存在于同一列中

var arr= ['abc','tbu','iop'];

var getPositionbyRow = function(row, col) {
if(arr[row][col]!=='b') {
        return row;
    }

    getPositionbyRow(row+1,col);
}
var  r = getPositionbyRow(0,1);

但是 r 的值总是未定义的。有人可以帮我理解它为什么会发生。感谢帮助。

【问题讨论】:

  • 不要根据 answer/cmets 中的建议更新问题。这使它们无效

标签: javascript recursion


【解决方案1】:

为了让你的递归函数工作你应该return getPositionbyRow(row+1,col);

此外,当数组中不存在 'b' 时添加条件并返回 -1 也是一个好习惯。这样你就可以避免无限循环

【讨论】:

  • 感谢意识到错误。
【解决方案2】:

只有arr[row][col]!=='b' 才会返回一些东西。否则你什么也不返回。

你需要

return getPositionbyRow(row+1,col);

【讨论】:

  • 感谢意识到错误。
猜你喜欢
  • 1970-01-01
  • 2022-11-18
  • 2018-07-03
  • 2021-11-01
  • 2013-06-26
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 2017-02-07
相关资源
最近更新 更多