Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

shallowEqualScalar.js 1.2 KiB

3 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142
  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
  6. exports.default = shallowEqualScalar;
  7. function shallowEqualScalar(objA, objB) {
  8. if (objA === objB) {
  9. return true;
  10. }
  11. if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {
  12. return false;
  13. }
  14. var keysA = Object.keys(objA);
  15. var keysB = Object.keys(objB);
  16. if (keysA.length !== keysB.length) {
  17. return false;
  18. }
  19. // Test for A's keys different from B.
  20. var hasOwn = Object.prototype.hasOwnProperty;
  21. for (var i = 0; i < keysA.length; i += 1) {
  22. if (!hasOwn.call(objB, keysA[i])) {
  23. return false;
  24. }
  25. var valA = objA[keysA[i]];
  26. var valB = objB[keysA[i]];
  27. if (valA !== valB || (typeof valA === 'undefined' ? 'undefined' : _typeof(valA)) === 'object' || (typeof valB === 'undefined' ? 'undefined' : _typeof(valB)) === 'object') {
  28. return false;
  29. }
  30. }
  31. return true;
  32. }