shallowEqualObjects.ts 599 B

123456789101112131415161718192021222324252627
  1. export default function shallowEqualObjects(objA: { [key: string]: any }, objB: { [key: string]: any }) {
  2. if (objA === objB) {
  3. return true;
  4. }
  5. if (!objA || !objB) {
  6. return false;
  7. }
  8. const aKeys = Object.keys(objA);
  9. const bKeys = Object.keys(objB);
  10. const len = aKeys.length;
  11. if (bKeys.length !== len) {
  12. return false;
  13. }
  14. for (let i = 0; i < len; i++) {
  15. const key = aKeys[i];
  16. if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {
  17. return false;
  18. }
  19. }
  20. return true;
  21. }