【发布时间】:2016-11-09 11:56:35
【问题描述】:
我目前正在使用 Marijn Haverbekes 的优秀书籍“Eloquent JavaScript”学习 JavaScript。现在有这个练习,你必须编写一个递归函数来返回嵌套列表的第 n 个元素。如果没有这样的元素,该函数应该返回undefined。解决方案如下所示:
function nth(list, n) {
if (!list)
return undefined;
else if (n == 0)
return list.value;
else
return nth(list.rest, n - 1);
}
到目前为止,一切对我来说似乎都很清楚。但是,我真的不明白if (!list) {} 到底做了什么。这种情况究竟如何评估?如果list 有一个元素n,为什么它是真的?
完整的练习可以在这里找到: http://eloquentjavascript.net/04_data.html#p_7AnSuS26HF
【问题讨论】:
-
if (!list)检查空列表 -
@FrédéricHamidi 是的,列表分支,因为它是递归遍历的
标签: javascript arrays list function