Задача из книги Выразительный Javscript. Как понять решение?
Напишите функцию arrayToList, которая строит такую структуру, получая в качестве аргумента [1, 2, 3], а также функцию listToArray, которая создаёт массив из списка.
Я нашел несколько решений, в том числе и здесь. Но не могу понять как решить самому. Ничего не приходит в голову. Вот, например, решение первой функции:
function arrayToList(arr) {
let i = arr.length - 1,
list = null;
for (; i >= 0; i--) {
list = {
value: arr[i],
rest: list
};
}
return list
}
Почему в строке rest: list, list == null? Если list уже перезаписан и стал объектом.
Или вот ещё решение:
function arrayToList(arr) {
var list = {
value: arr[0],
rest: null
}
var list0 = list;
for (i=1; i<arr.length; i++) {
list.rest = new Object();
list.rest.value = arr[i];
list.rest.rest = null;
list = list.rest ;
}
return list0;
}
Почему в итоге list и list0 это разные объекты. Тогда как list0 ссылается на объект list и они должны быть одним объектом.