【发布时间】:2016-04-11 05:11:25
【问题描述】:
我正在通过雄辩的 javascript 工作,无论出于何种原因,return 根本无法在函数 nth 中工作。 老实说,我不明白为什么它不起作用。我知道我已经非常接近在第 n 次工作的递归版本了。这个错误对我来说毫无意义。 以下是所有相关代码:
function arrayToList(array) {
list = null;
for (i = 0; i < array.length; i++ ) {
var x = array[array.length -(i + 1)];
list = {value: x, rest: list};
} return list;
}
function listToArray(list) {
var array = [];
var i = 0;
for (var node = list; node; node = node.rest) {
array[i] = node.value;
i += 1;
}
return array;
}
//return statements are broken here
function nth(list, number) {
if (number == 0) {
//console.log(list.value);
return element;
var element = list.value;
} else if (number > 0) {
list = list.rest;
number--;
//console.log(number);
//console.log(list);
nth(list, number);
} else {
return "Something went wrong";
console.log(number);
}
}
console.log(nth(arrayToList([10, 20, 30]), 1));
谁能解释为什么 return 语句在第 n 个函数中不起作用?
【问题讨论】:
-
你的缩进好像有点不对...
-
return nth(list, number);in else if -
函数调用正常。我移动了缩进,这似乎不是问题。
-
您应该使用 var 将所有这些变量保留在本地:
for (i=0 ...)不是雄辩的。 -
我认为 for(i = 0 ...) 是本地的
标签: javascript if-statement return