我目前在使用Marijn Haverbekes出色的书“Eloquent JavaScript”学习JavaScript。现在有了这个练习,你必须编写一个返回嵌套列表的第n个元素的递归函数。如果没有这样的元素,该函数应该返回undefined
。解决方案如下所示:JavaScript:检查元素列表
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
?
完整的锻炼; Tibial可以在这里找到: http://eloquentjavascript.net/04_data.html#p_7AnSuS26HF
'如果(!列表)'检查空列表 –
@FrédéricHamidi呀,列表选项,因为它是经过递归 –