javascript - Eloquent JavaScript 练习 - 在列表中查找第 N 个位置
问题描述
下面是我对 Eloquent JavaScript 第 4 章练习的解决方案。目标是编写一个函数,该函数通过由链接对象组成的列表递归地工作,例如:
{值:1,休息:{值:2,休息:{值:3,休息:空}}}
等等...
在其他问题的帮助下,我编写了以下代码:
function findNth (list, n) {
let node = list
if (n === 0) {
return node.value
} else if (node.rest) {
node = node.rest
findNth (node, n - 1)
} else {
return undefined
}
}
N 作为 arg 输入,应该代表您要返回的列表的“索引”位置,使用 console.logs 我可以看到它通过 else if 语句成功倒数 N。但是,当 N 达到 0 时到达最后一次迭代时,它应该通过返回 node.value 返回相关值,但似乎返回未定义。
通过进一步的日志记录,我确认它不是通过最终的 If 语句返回未定义,而是在尝试返回 node.value 的值时。
谁能解释这是为什么?
提前致谢!