递归判断两个对象属性值是否相等方法function isObjectValueEqual (a, b) { //取对象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]; var type = typeof a[propName]; if(type === 'object'){ //值是对象类型就递归 if(!isObjectValueEqual(a[propName],b[propName])){ return false; } }else{ if(a[propName] !== b[propName]) { return false; } } } return true }JavaScript 复制应用场景用于判断对象中的属性值是否发生变化,从而决定下次是否更新对象,例如Excel导入到table中,可能的情况有:Excel中有新的数据增加到table中。Excel中的部分数据已经在table中且没有变化,不做任何操作。3.Excel中的部分数据虽然在table中但每行记录(对象)中的部分属性已经改变,此时需要判断对象属性值是否新旧是否一样从而是否进行更新操作。 最后修改:2022 年 02 月 17 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏