Size: a a a

JavaScript Noobs — сообщество новичков

2020 July 03

j

jk in JavaScript Noobs — сообщество новичков
const parentCity = branche.cities.find(city => city.title === branche.title)
источник

j

jk in JavaScript Noobs — сообщество новичков
Вот эта строка всегда возвращает один и тот же экземпляр из cities
источник

j

jk in JavaScript Noobs — сообщество новичков
В рамках отдельного branche, ессно.
источник

ES

Evgeniy Safronov in JavaScript Noobs — сообщество новичков
Это я знаю, но вопрос вот в чем почему при второй и более итерации

division = branche.divisions.find(division => division.cityId === parentCity.cityId);

division - уже содержит cityId = null и данные с предыдущей итерации
источник

j

jk in JavaScript Noobs — сообщество новичков
Evgeniy Safronov
Это я знаю, но вопрос вот в чем почему при второй и более итерации

division = branche.divisions.find(division => division.cityId === parentCity.cityId);

division - уже содержит cityId = null и данные с предыдущей итерации
Потому что ты мутировал объект.
источник

ES

Evgeniy Safronov in JavaScript Noobs — сообщество новичков
Можешь подсказать как такое исправить?
источник

j

jk in JavaScript Noobs — сообщество новичков
Evgeniy Safronov
Можешь подсказать как такое исправить?
Глубокое клонирование? Я до сих пор не понимаю в чём твоя задача.
источник

j

jk in JavaScript Noobs — сообщество новичков
JSON.parse(JSON.stringify(object)) самый простой вариант если что.
источник

j

jk in JavaScript Noobs — сообщество новичков
Но lodash быстрее и круче.
источник

ES

Evgeniy Safronov in JavaScript Noobs — сообщество новичков
1. Я нахожу branche по городу
2. Если branche в городе не найден, нахожу родителя города
3. По родителю ищу branche
4. Беру экземпляр branche родителя , после чего вношу в него некоторые изменения из изначального рода под 1
5. После чего затиаю у branche id города
6. Заношу результат в массив

Далее повторяю циклом на новом дочернем городе и т.д.
источник

ES

Evgeniy Safronov in JavaScript Noobs — сообщество новичков
Как только дочерние города заканчиваются беру новый основной город и прохожусь по его дочерним населенным пунктам
источник

j

jk in JavaScript Noobs — сообщество новичков
Evgeniy Safronov
1. Я нахожу branche по городу
2. Если branche в городе не найден, нахожу родителя города
3. По родителю ищу branche
4. Беру экземпляр branche родителя , после чего вношу в него некоторые изменения из изначального рода под 1
5. После чего затиаю у branche id города
6. Заношу результат в массив

Далее повторяю циклом на новом дочернем городе и т.д.
Ну судя по всему тебе нужно набить массив клонами не трогая оригинальную структуру.
источник

ES

Evgeniy Safronov in JavaScript Noobs — сообщество новичков
Именно
источник

j

jk in JavaScript Noobs — сообщество новичков
Evgeniy Safronov
Именно
JSON.parse(JSON.stringify(object)) создаст новый глубокий клон объекта, если у него простая структура (json-стайл структура).
источник

j

jk in JavaScript Noobs — сообщество новичков
Делай клон до внесения изменений. Меняй ему свойства. Пуш клон в массив.
источник

ES

Evgeniy Safronov in JavaScript Noobs — сообщество новичков
let cloneDivision = JSON.parse(JSON.stringify(division));
                   cloneDivision['id'] = null;
                   cloneDivision['name'] = city.title;
источник

ES

Evgeniy Safronov in JavaScript Noobs — сообщество новичков
Так имеешь ввиду?
источник

j

jk in JavaScript Noobs — сообщество новичков
Да.
источник

j

jk in JavaScript Noobs — сообщество новичков
Но у тебя там фигурные скобки кругом, я надеюсь ты понимаешь как работает let/const
источник

ES

Evgeniy Safronov in JavaScript Noobs — сообщество новичков
let - перезаписывает, const - нет
источник