在做这道题的时候,我实现的题中最后一个函数 nth 的返回结果总是 undefined ,明明在即将返回值的地方打 log 输出的都是正确的值。
代码如下:
function arrayToList(para) {
if (para[0] !== undefined) {
var list = {
value: para[0],
rest: null
};
for (var i = 1, j = list;
i < para.length; ++i , j = j.rest) {
j.rest = {
value: para[i],
rest: null
};
}
return list;
}
}
function nth(list, n) {
if (list !== undefined || list !== null) {
if (n === 0) {
// 此处打 log 结果依然为 list.value 的值
return list.value;
}
else {
nth(list.rest, --n);
}
}
}
console.log(nth(arrayToList([10, 20, 30]), 1)); //此处输出为 undefined
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.