Files

45 lines
1005 B
JavaScript

function deepEqual(a, b){
if(((typeof(a) === 'object') && (a !== null)) &&
((typeof(b) === 'object') && (b !== null))){
var size_a = 0;
var size_b = 0;
for(prop in a){ size_a++; }
for(prop in b){ size_b++; }
if(size_a == size_b){
for(prop in a){
if(!b.hasOwnProperty(prop)){
return false;
}
}
for(prop in a){
if(!deepEqual(a[prop], b[prop])){
return false;
}
}
}else{
return false;
}
}else{
return (a === b);
}
return true;
}
var obj = {here: {is: "an"}, object: 2};
console.log(deepEqual(obj, obj));
console.log(deepEqual(obj, {here: 1, asd: 2}));
console.log(deepEqual(obj, {here: {is: "an"}, object: 2}));
//console.log(deepEqual(1, 2));
//console.log(deepEqual(2, 2));