Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2018, 18:24
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

JS FOR LOOP (for nested obj)
Всех приветствую. Подскажите пож-та, как работает данный цикл for?
Что значит node.rest ?

let list = {
  value: 1,
  rest: {
    value: 2,
    rest: {
      value: 3,
      rest: null
    }
  }
};
for (let node = list; node; node = node.rest) {
console.log(node);
}
/*
{
value:	1
rest:	{
value:	2
rest:	{value: 3, rest: null}
}
}
{value: 2, rest: {value: 3, rest: null}}
{value: 3, rest: null}

*/

Последний раз редактировалось VyacheslavBozere, 23.06.2018 в 18:34.
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2018, 18:31
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

А что в консоли пусто?
Ответить с цитированием
  #3 (permalink)  
Старый 23.06.2018, 18:34
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

Не знаю. Я коммент добавил как должно выводить. У меня выводит
Ответить с цитированием
  #4 (permalink)  
Старый 23.06.2018, 18:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

VyacheslavBozere,
строка 11 первый такт: let node = list мы в строке 1
строка 11 второй такт: node = node.rest мы в строке 3
строка 11 третий такт: node = node.rest мы в строке 5
строка 11 четвёртый такт: node = node.rest мы в строке 7
строка 11 пятый такт: for (let node = list; node; node = node.rest) node равен null мы в строке 14.
... может кто-то обьяснит иначе
Ответить с цитированием
  #5 (permalink)  
Старый 23.06.2018, 18:39
Аспирант
Отправить личное сообщение для VyacheslavBozere Посмотреть профиль Найти все сообщения от VyacheslavBozere
 
Регистрация: 18.03.2018
Сообщений: 31

Все понял. Очень грамотно объяснили. Спасибо большое. Еще вопрос, а на практике стоит такое применять ? Или проще for in для obj использовать ?
Ответить с цитированием
  #6 (permalink)  
Старый 23.06.2018, 18:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от VyacheslavBozere
Еще вопрос, а на практике стоит такое применять ?
для данного случая да.
Ответить с цитированием
  #7 (permalink)  
Старый 23.06.2018, 18:43
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

VyacheslavBozere,
ну вот, каждый node.rest хранит ссылку на объект, который тоже хранит и тд, односвязный список, а вот двусвязный список.

Последний раз редактировалось Rise, 23.06.2018 в 18:47.
Ответить с цитированием
  #8 (permalink)  
Старый 23.06.2018, 19:12
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,004

Сообщение от VyacheslavBozere Посмотреть сообщение
Все понял. Очень грамотно объяснили. Спасибо большое. Еще вопрос, а на практике стоит такое применять ? Или проще for in для obj использовать ?
for in здесь никаким боком.
А так, юзать можно, только список может быть замкнут, если последний элемент смотрит на кого-то из предыдущих или даже на себя, тогда будет бесконечный цикл.
Ответить с цитированием
  #9 (permalink)  
Старый 23.06.2018, 19:47
Аватар для xShift
Профессор
Отправить личное сообщение для xShift Посмотреть профиль Найти все сообщения от xShift
 
Регистрация: 22.11.2016
Сообщений: 212

Забавное извращение Новый while true головного мозга ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Диалог между HTML и внешним JS в контексте расширения GoogleChrome ev1lart Events/DOM/Window 0 26.04.2017 19:25
BackEnd/FrontEnd Developer (Native JS) Abab Работа 0 25.12.2016 10:56
js стиль render для react.js vflash Ваши сайты и скрипты 5 01.04.2016 22:57
Картинка обрабатывается js 4yBaK Общие вопросы Javascript 10 11.09.2011 09:28
проблема с js в ie c объектами llorangell Javascript под браузер 8 08.08.2011 00:46