我正在努力开始使用JavaScript。我实现了一个简单的函数将数组转换为单链表,然后递归迭代它以返回特定位置的值。我的代码当前记录undefined
所有位置值,除了0。是什么导致它以这种方式运行?
var list = arrayToList([1,2,3,4,5]);
function arrayToList(arr) {
var list = null;
for (var i = arr.length - 1; i >= 0; i--) {
list = {value : arr[i], rest: list};
}
return list;
}
function nth(list, count) {
if (!list) return undefined;
if (count == 0) return list.value;
else nth(list.rest, count - 1);
}
console.log(nth(list,2));
答案 0 :(得分:1)
问题在于"否则" nth
函数中的子句不返回值,因此默认返回undefined
。
答案 1 :(得分:0)