Я смотрю на это упражнение из книги Eloquent Javascript, глава 4 - Список уже довольно давно, и я пытаюсь понять, как работает эта конкретная функция:
function arrayToList(array) {
let list = null;
for (let i = array.length - 1; i >= 0; i--) {
list = {value: array[i], rest: list};
}
return list;
}
console.log( arrayToList([10, 20]));
// → {value: 10, rest: {value: 20, rest: null}}
Даже после добавления list
в окно «Наблюдение» в отладчике я не вижу четко следующее:
1. Каким образом оператор из списка = {value: array[i], rest: list};
добавляется к свойству rest
вложенного объекта во время каждой итерации?
Очевидно, что точка .rest
или скобка ['rest']
не используются, и явно не указывается, что во время каждой следующей итерации мы ссылаемся на свойство объекта или его более поздних вложенных объектов, так как же это получить добавляется к свойству каждого следующего вложенного объекта.
Я ожидаю, что на каждой итерации будет перезаписано содержимое объекта list
, но это не так.