一些经常使用函数

比较两个对象是否彻底相等(深度检查)数组

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]';
};
相关文章
相关标签/搜索