1

比较两个对象是否完全相等(深度检查)

function isObjectAllEqual (a, b) {
  if ( a === void 0 ) a = {};
  if ( b === void 0 ) b = {};
  if (!a || !b) { return a === b } //a或者b存在且不为空对象的时候做对比
  var aKeys = Object.keys(a); //a对象所有键组成的数组
  var bKeys = Object.keys(b); //b对象所有键组成的数组
  if (aKeys.length !== bKeys.length) {//先比较ab键组成的数组长度是否相同
    return false
  }
  // 确定数组的所有成员是否满足指定的测试。
  return aKeys.every(function (key) {
    var aVal = a[key];
    var bVal = b[key];
    // check nested equality
    if (typeof aVal === 'object' && typeof bVal === 'object') {
      return isObjectEqual(aVal, bVal)
    }
    return String(aVal) === String(bVal)
  })
}

验证数组

var isarray = Array.isArray || function (arr) {
  return Object.prototype.toString.call(arr) == '[object Array]';
};

Just_do
242 声望37 粉丝

没有介绍