Допустим есть 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);