判断两个对象相等

<script>

var a = {
name: 'jk',
age: 12,
say: {
today: 'hi',
yesterday: 'no'
},
arr: [1,2]
};

var b = {
name: 'jk',
age: 12,
say: {
today: 'hi',
yesterday: 'no'
},
arr: [1,2]
};

console.log(isObjectValueEqual(a, b));

function isObjectValueEqual(a, b) {
if (typeof a == 'number' && typeof b == 'number') {
return a == b
}


var aProps = Object.getOwnPropertyNames(a);
var bProps = Object.getOwnPropertyNames(b);

if (aProps.length != bProps.length) {
return false;
}

for (var i = 0; i < aProps.length; i++) {
var propName = aProps[i];
console.log(propName, Object.prototype.toString(a[propName]));
//if (Object.prototype.toString(a[propName]) == '[Object Object]' || Object.prototype.toString(b[propName]) == '[Object Object]') {
if ( typeof a[propName] === 'object' || typeof b[propName] === 'object' ){
console.log(a[propName], b[propName]);
isObjectValueEqual(a[propName], b[propName])
}else if (a[propName] !== b[propName]) {
return false;
}
}
return true;
}
</script>
posted @ 2017-06-21 09:48  Mazhaokeng  阅读(199)  评论(0编辑  收藏  举报