函数返回值,结果显示未定义

时间:2018-02-09 06:45:26

标签: javascript recursion

您好我已经尝试过这个功能。这个功能会给出行号,直到'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的值始终未定义。有人可以帮助我理解为什么会发生这种情况。感谢帮助。

2 个答案:

答案 0 :(得分:1)

为了使您的递归函数正常工作,您应该return getPositionbyRow(row+1,col);

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

答案 1 :(得分:0)

如果arr[row][col]!=='b',您只会返回一些内容。否则你什么也不返回。

你需要

return getPositionbyRow(row+1,col);