书中说:listToArray能言善辩的JavaScript
跑过来列表(在listToArray和第n个),一个像这样循环规范可用于:
for (var node = list; node; node = node.rest) {}
循环的每次迭代,节点指向当前子列表,并且主体可以读取其value属性以获取当前元素。在迭代结束时,节点移动到下一个子列表。当它为空时,我们已经到达列表的末尾,循环结束。
问题1:你能解释一下for循环的条件是如何工作的吗?我知道它正在检查节点(当前列表)是否为空...但是“节点”参数本身是如何工作的?
问题2:为什么下面的代码不起作用?
function listToArray(list){
var result = [];
while(list.value != null){
result.push(list.value);
list = list.rest;
}
return result;
};
console.log(listToArray(list));
对于它的价值在现代的JavaScript你会榜上无名迭代,而不是滚动您自己的迭代方案。 –