一些經常使用函數

比較兩個對象是否徹底相等(深度檢查)數組

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]';
};
相關文章
相關標籤/搜索