架构爱好者
学习交流中心

isObjectEqual (only for enumerable properties)

function isObjectEqual (obj1, obj2) {
  if (typeof obj1 !== 'object' || typeof obj2 !== 'object') {
  return obj1 === obj2
  }
  // if refer to the same location
  if (obj1 === obj2) {
  return true
  }

  var keys1 = Object.keys(obj1)
  var keys2 = Object.keys(obj2)

  if (keys1.length !== keys2.length) {
  return false
  }

  if (keys1.length === 0 && keys2.length === 0) {
  return true
  }

  for (var i = 0, len = keys1.length; i < len; i++) {
  if (!isObjectEqual(obj1[keys1[i]], obj2[keys2[i]])) {
    return false
  }
  }
  return true
}

 

未经允许不得转载:技术杂烩 » isObjectEqual (only for enumerable properties)