Нормальным ли я способом сделал?
Свойства объектов разном порядке
var objA = {
prop1: 'value1',
prop2: 'value2',
prop3: 'value3',
prop4: {
subProp1: 'sub value1',
subProp2: {
subSubProp1: 'sub sub value1',
subSubProp2: [1, 2, {prop2: 1, prop: 2}, 4, 5]
}
},
prop5: 1000,
prop6: new Date(2016, 2, 10)
}
var objB = {
prop5: 1000,
prop3: 'value3',
prop1: 'value1',
prop2: 'value2',
prop6: new Date('2016/03/10'),
prop4: {
subProp2: {
subSubProp1: 'sub sub value1',
subSubProp2: [1, 2, {prop2: 1, prop: 2}, 4, 5]
},
subProp1: 'sub value1'
}
};
function foo(ob1, ob2){
var res1 = [];
var res2 = [];
for(var prop in ob1){
res1.push(prop + ':' + ob1[prop])
if(ob1[prop] == '[object Object]'){
for(key in ob1[prop]){
res1.push(key + ':' + ob1[prop][key])
if(ob1[prop][key] == '[object Object]'){
for(kl in ob1[prop][key]){
res1.push(kl + ':' + ob1[prop][key][kl])
}
}
}
}
}
for(var prop in ob2){
res2.push(prop + ':' + ob2[prop])
if(ob2[prop] == '[object Object]'){
for(key in ob2[prop]){
res2.push(key + ':' + ob2[prop][key])
if(ob2[prop][key] == '[object Object]'){
for(kl in ob2[prop][key]){
res2.push(kl + ':' + ob2[prop][key][kl])
}
}
}
}
}
res1.sort()
res2.sort()
var obj1 = res1.join()
var obj2 = res2.join()
console.log(obj1)
console.log(obj2)
if(obj1 == obj2){
return alert('Объекты равны')
}
else{
return alert('Объекты не равны')
}
}
foo(objA, objB)