Мне нужно сравнить два массива. Если я проверяю, является ли Object1 == Object2, я проверяю, указывают ли объекты на один и тот же адрес в памяти. Я на самом деле хочу сравнить их на основе значений их свойств. Позвольте мне показать вам, что я имею в виду.
У меня есть класс в javascript:
function MyClass(var1,var2,var3)
{
this.var1 = var1;
this.var2 = var2;
this.var3 = var3;
}
Теперь я смогу создать новый объект этого класса как:
var myNewObject = new MyClass(1,"hello",3);
и я смогу получить доступ к свойствам этого объекта как:
myNewObject.var2 = "New value";
У меня есть два массива:
var array1 = new Array();
var array2 = new Array();
оба массива заполнены объектами MyClass. Другими словами, если array1 имеет 3 элемента, я знаю, что они будут иметь тип MyClass, что означает, что я мог бы сделать что-то вроде: array1[2].var1 = foo
* Я хотел бы сравнить массив1 с массивом2 по значениям их свойств *
например, если
array1 = [ [1,"hello",4] , [0,"foo",5] ];
array2 = [ [0,"foo",5555] [1111,"hello",4]];
note: // [1,"hello",4] means a MyClass object with var1=1, var2="hello", var3 = 4
Я хотел бы иметь метод, который сообщит мне об изменениях. В этом примере var1 изменился на 1111, а var3 изменился с 5 на 5555.
Я, вероятно, смогу сделать это, если потрачу на это много наших. Я не очень хорош в алгоритмах и, возможно, есть простой способ сделать это.
редактировать
Я хотел бы знать, какие изменения мне придется внести в массив1, чтобы он стал равным массиву2.