Сравнение объектов
Собственно вопрос был озвучен в названии темы.
Я так полагая что штатные операторы сравнения == не будут правильно работать и нужно писать свою рекурсивною функцию для сравнения свойств объектов. Может есть готовые решения или это можно сделать стандартными возможностями языка? |
Нету стандартных средств, ни сравнения, ни копирования.
|
А можно узнать, где вам это понадобилось?
|
Есть хешовый объект, в котором хранятся настройки. Во время нахождения пользователя на сайте, некоторые свойства от настроек могут изменится. Если какие-то свойства изменились, то я передаю объект на сервер через ajax.
Я лично отталкивался от такой логики: 1) получаем дефолтный хеш настроек. 2) клонируем его в другой хеш (функцию клонирования уже отыскал в сети) 3) используем функцию обновления данных в хеше, если нужно. 4) в самом конце сравниваем начальный хеш с конечным ,если изменился, тогда передаю на сервер данные. Весь смысл моего извращения, чтобы не дергать каждый раз запрос на сервер ,а отсылать его тогда, когда реально были изменены данные. Вот. Хотелось бы услышать ваши мысли, вдруг моя логика хромает и есть варианты попроще. |
Цитата:
|
Cepin, ну а если в массив, а там уже сравнивать, проверять каждое значение на совпадение или несовпадение?
|
Я пишу userscript. И данные которые будут менятся, изначально мне недоступны, они выдаются сервером..но не каждый раз, а примерно через 40 минут или через день. Затем мне нужно хеш с настройками передать на сервер.
|
Но меняет-то их ваш код?
|
Нет, мой код ничего не меняет. Он просто использует настройки и если есть необходимость, он их обновляет. Это все идет как внешнее дополнение. Поэтому я придерживаюсь позиции: если обновились данные, тогда их следует обновить. Вообщем по сути, писать свою функцию сравнения, верно?
|
Вы же их как-то сериализируете перед отправкой на сервер. Вот и сравнивайте строки, а не объекты.
|
Часовой пояс GMT +3, время: 08:14. |