Книга говорит:listToArray Eloquent JavaScript
Чтобы задавить список (в listToArray и п-й), а при описании петли, как это можно использовать:
for (var node = list; node; node = node.rest) {}
Каждая итерация цикла , узел указывает на текущий подписок, и тело может прочитать его значение, чтобы получить текущий элемент. В конце итерации узел переходит к следующему подсписку. Когда это значение равно null, мы достигли конца списка, и цикл завершен.
Вопрос 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 вы бы сделать список итерации, а не качение собственной схемы итерации. –