![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
13.12.2017, 18:52
|
Аспирант
|
|
Регистрация: 02.07.2017
Сообщений: 83
|
|
Сообщение от Dilettante_Pro
|
shoopik,
Вы можете по условию if(item[key]!=old_item[key])
делать не только присвоение, а и запустить функцию изменения координат
|
но в итоге же создаётся новый объект old_item, и он возвращается, за счет чего идет перерисовка а не присвоение ? не пойму ![](https://javascript.ru/forum/images/smilies/smile.gif)
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
13.12.2017, 20:03
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
Сообщение от shoopik
|
Получается здесь всё равно идёт присвоение, ну т.е. на место старого массива, встаёт копия. Старый же заменяется ?
|
Старый не заменяется, а изменяется.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
13.12.2017, 20:12
|
Аспирант
|
|
Регистрация: 02.07.2017
Сообщений: 83
|
|
Сообщение от Nexus
|
Старый не заменяется, а изменяется.
|
Где мне можно прочитать объяснение этому ? ![](https://javascript.ru/forum/images/smilies/smile.gif)
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
13.12.2017, 20:16
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
shoopik, даже не знаю.
Достаточно просто разобраться, что скрипт делает.
Из массива new_data создается новый массив data, который содержит как новые элементы из массива new_data, так и измененные элементы массива data, если в массивах data и new_data были элементы с одинаковыми id.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
13.12.2017, 20:22
|
Аспирант
|
|
Регистрация: 02.07.2017
Сообщений: 83
|
|
Сообщение от Nexus
|
создается новый массив data
|
ага, так всё-таки создаётся ?))
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
14.12.2017, 09:27
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,800
|
|
shoopik, массив фактически другой, но элементы - измененные старые, к которым добавились новые.
Так что можно сказать, что это старый массив, который подвергся изменению.
Какой-то разницы быть не может, если данные хранятся в обычном массиве.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
14.12.2017, 10:56
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
shoopik,
Вы лучше конкретизируйте, какой результат вам нужен в итоге - что, где и по какой причине должно меняться.
Каким образом, на основании чего идет перерисовка?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
14.12.2017, 11:12
|
![Аватар для Alexandroppolus](https://javascript.ru/forum/image.php?u=49879&dateline=1530205757) |
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
Судя по посту №9 в этом топике, автору нужен "виртуальный ДОМ" или типа того.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
14.12.2017, 17:19
|
Аспирант
|
|
Регистрация: 02.07.2017
Сообщений: 83
|
|
Сообщение от Dilettante_Pro
|
shoopik,
Вы лучше конкретизируйте, какой результат вам нужен в итоге - что, где и по какой причине должно меняться.
Каким образом, на основании чего идет перерисовка?
|
ну т.е. есть объекты в старом массиве типа {id: user1, lat: 55.66}, и если с сервера приходит массив с таким же айди, то в локальном массиве, именно в этом объекте должен поменяться только lat, т.е. не переприсвоение, а именно в том старом объекте, ну и соответственно если с сервера приходит объект с айди которого нет в локальном, он пушиться в локальный, а если в локальном есть лишний объект, он удаляется ![](https://javascript.ru/forum/images/smilies/smile.gif)
Зачем это всё ? Т.е. при отрисовке, если подменять массив, то если выбран(выделен, захвачен) какой-то отрисованный объект, он пропадает из выделения, нужно менять именно в старом
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
14.12.2017, 17:22
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
shoopik,
Еще раз:
Каким образом, на основании чего идет перерисовка?
|
|
|
|