omaxphp
@omaxphp
Выучиться не значит знать

Как на javascript отследить изменение в объекте?

допустим, есть массив, там иногда бывают изменения, а иногда вообще ничего не производятся

как проверить? на php это можно наверное делать по count($var) и сравнивать ответ, а на js?
  • Вопрос задан
  • 3500 просмотров
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Допустим есть 2 объекта:
var a = {
    name: "Vasia"
};
var b = {
    name: "Petia"
};


При этом мы не знаем ни названия полей, ни их количество. У нас есть варианты:
1. Сериализовать в JSON и сравнить получившиеся строки:
var string_a = JSON.stringify(a);
var string_b = JSON.stringify(b);
string_a === string_b; // false


2. Использовать специальные библиотеки, например Underscore и её метод _.isEqual:
var moe   = {name : 'moe', luckyNumbers : [13, 27, 34]};
var clone = {name : 'moe', luckyNumbers : [13, 27, 34]};

// false
moe == clone;

// true
_.isEqual(moe, clone);
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@bogomazov_vadim
Предполагаю, что нужно копировать массив и сравнивать между собой значения и длины.
Ответ написан
shcherbanich
@shcherbanich
Программист
Смотря про какие изменения Вы говорите. Вообще в js у объектов есть свойство length
Ответ написан
Комментировать
@PiloTeZ
...
Делать доступ к свойствам через метод
Ответ написан
Комментировать
Я бы посоветовал почитать про паттерн Observer и реализовать его. Код будет более масштабируемый, чем сравнение объектов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы