unique.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. * Copyright (c) 2015-present, Parse, LLC.
  14. * All rights reserved.
  15. *
  16. * This source code is licensed under the BSD-style license found in the
  17. * LICENSE file in the root directory of this source tree. An additional grant
  18. * of patent rights can be found in the PATENTS file in the same directory.
  19. *
  20. * @flow
  21. */
  22. function unique
  23. /*:: <T>*/
  24. (arr
  25. /*: Array<T>*/
  26. )
  27. /*: Array<T>*/
  28. {
  29. var uniques = [];
  30. (0, _forEach.default)(arr).call(arr, function (value) {
  31. if (value instanceof _ParseObject.default) {
  32. if (!(0, _arrayContainsObject.default)(uniques, value)) {
  33. uniques.push(value);
  34. }
  35. } else {
  36. if ((0, _indexOf.default)(uniques).call(uniques, value) < 0) {
  37. uniques.push(value);
  38. }
  39. }
  40. });
  41. return uniques;
  42. }