UNPKG

flo-utils

Version:
40 lines (31 loc) 1.31 kB
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } /** * * @name isEquivalentObj, 对象判等 * @param {object} a * @param {object} b */ import isObject from './isObject'; import { consoleWran } from './warn/util'; function isEquivalentObj(a, b) { if (!isObject(a) || !isObject(b)) { consoleWran('type is object'); return false; } // 获取对象属性的所有的键 var aProps = Object.getOwnPropertyNames(a); var bProps = Object.getOwnPropertyNames(b); // 如果键的数量不同,那么两个对象内容也不同 if (aProps.length !== bProps.length) { return false; } for (var i = 0, len = aProps.length; i < len; i += 1) { var propName = aProps[i]; if (typeof a[propName] !== 'function' || !_typeof(b[propName]) !== 'function') { // 如果对应的值不同,那么对象内容也不同 if (a[propName] !== b[propName]) { return false; } } } return true; } export default isEquivalentObj;