2017-03-08 16 views
0

JavaScriptを使い始める作業を進めています。私は配列を単一リンクリストに変換し、それを繰り返して特定の位置の値を返す単純な関数を実装しました。私のコードは現在、0以外のすべての位置値に対してundefinedを記録します。何故このように振る舞いますか?単一リンクリストでの単純な再帰的反復処理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はデフォルトで返されます。ここ

https://github.com/aloksguha/smartll

またはノード・ライブラリとして、それを試してみることができますにわたり私の例で

0

ルック。 "smart-ll"

関連する問題