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