unique.js 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. "use strict";
  2. var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
  3. var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
  4. _Object$defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = unique;
  8. var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
  9. var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
  10. var _arrayContainsObject = _interopRequireDefault(require("./arrayContainsObject"));
  11. var _ParseObject = _interopRequireDefault(require("./ParseObject"));
  12. /**
  13. * @flow
  14. */
  15. function unique /*:: <T>*/(arr /*: Array<T>*/) /*: Array<T>*/{
  16. var uniques = [];
  17. (0, _forEach.default)(arr).call(arr, function (value) {
  18. if (value instanceof _ParseObject.default) {
  19. if (!(0, _arrayContainsObject.default)(uniques, value)) {
  20. uniques.push(value);
  21. }
  22. } else {
  23. if ((0, _indexOf.default)(uniques).call(uniques, value) < 0) {
  24. uniques.push(value);
  25. }
  26. }
  27. });
  28. return uniques;
  29. }