function arrayToList(array) {
let list = [];
for(let element of array) {
list = {value: element, rest: list};
}
return list;
}
console.info(arrayToList([1, 2, 3]));
// -> {value: 1, rest: { value: 2, rest: { value: 3, rest: [] } }}
Что в этом коде означает эта строка? Можешь описать? список = {значение: элемент, остальные: список};
function listToArray(list) {
let array = [];
for(let node = list; node; node = node.rest) {
array.push(node.value);
}
return array;
}
console.info({value: 1, rest: { value: 3, rest: [] }});
// -> [1, 3];
Как в этом коде работает эта строка? for (let node = list; node; node = node.rest) {выражение}
Я хочу указать, что на самом деле ваш вывод для первого примера неверен. Это {value: 3, rest: { value: 2, rest: { value: 1, rest: [] } }}, а не {value: 1, rest: { value: 2, rest: { value: 3, rest: [] } }}. И второй пример вывода, предполагающий, что вы хотели передать его в listToArray(), - это [1, 3, undefined], а не [1, 3].
@PatrickRoberts, извини. Вы правы, просто неверный вывод, спасибо :)
@doodlemeister, спасибо за ответ. Не могли бы вы помочь пошагово? Я запутался, потому что не могу понять.
возможный дубликат stackoverflow.com/questions/28800442/… и stackoverflow.com/questions/30224512/…
@Bergi, большое спасибо! Это хороший ответ на первый вопрос, большое спасибо :) Как я могу проголосовать за вас?
@ n3pixowe Просто проголосуйте там за ответы :-)
@Bergi, я не вижу здесь ничего для голосования за. Какую кнопку я должен нажать и где она находится?
@ n3pixowe Здесь ничего нет, вы можете просто проголосовать за мой комментарий. Там проголосуйте за ответ, щелкнув стрелку вверх.
@Bergi я не могу, мне нужно 15 популяций. Anway, большое спасибо. Я закрою этот вопрос, но не могу выбрать ваш ответ для решения.
@ n3pixowe О, верно. Делать ничего не надо, вопрос уже закрыт.
@Bergi Хорошо, еще раз большое спасибо :)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Он рекурсивно вкладывает значения массива внутри объекта. Вторая функция распаковывает их обратно в массив.
Это напоминает мне связанный список. Хотя я не могу представить, почему это может быть полезно на таком языке, как JavaScript, в котором фактически отсутствуют указатели.
Да. Вторая функция распаковывает их обратно в массив.
Ой, извини, не могу поверить, что пропустил это. ; _ ;. Не обращайте внимания на то, что я говорю ... Проголосуйте!
Джон Элмор, спасибо за ответ. Вы можете помочь шаг за шагом? Я сбит с толку.
"Напоминает"? Это является связанный список. И хотя в JS нет указателей, ссылок на объекты для этого явно достаточно.
О,
[]на мгновение сбил меня с толку. Вы создаете связанный список и возвращаете последний объект в списке, хотя я не думаю, что результат в вашем комментарии точен. Цифры выглядят перевернутыми.