在做这道题的时候,我实现的题中最后一个函数 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