有如下两个对象例子:
var obj1 = { name:"xx", sex:"man", age:18 } var obj2 = { name:"xxs", sex:"man", age:18 }
判断两个对象是否相等方法:
function isObjectValueEqual (a, b) { //取对象 a 和 b 的属性名 var aProps = Object.getOwnPropertyNames(a); var bProps = Object.getOwnPropertyNames(b); //判断属性名的 length 是否一致 if (aProps.length != bProps.length) { return false; } //循环取出属性名,再判断属性值是否一致 for (var i = 0; i < aProps.length; i++) { var propName = aProps[i]; if (a[propName] !== b[propName]) { return false; } } return true; }
如何使用:
var isChange = isObjectValueEqual(obj1,obj2); if (isChange == true){ console.log('没有修改,不需要提示是否保存'); }else { console.log('发生修改,提示是否保存'); }