2017-03-08 56 views
0

我正在开始使用JavaScript。我实现了一个简单的函数来将一个数组转换为一个单独的链表,然后递归地遍历它以返回特定位置的值。我的代码当前记录undefined除了0以外的所有位置值。是什么导致它以这种方式表现?单向链表上的简单递归迭代JavaScript

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)); 

回答

1

的问题是,在nth功能的“其他”条款没有返回值,所以undefined默认情况下返回。