sort-by.js 1022 B

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var is_array_1 = require("./is-array");
  4. var is_string_1 = require("./is-string");
  5. var is_function_1 = require("./is-function");
  6. function sortBy(arr, key) {
  7. var comparer;
  8. if (is_function_1.default(key)) {
  9. comparer = function (a, b) { return key(a) - key(b); };
  10. }
  11. else {
  12. var keys_1 = [];
  13. if (is_string_1.default(key)) {
  14. keys_1.push(key);
  15. }
  16. else if (is_array_1.default(key)) {
  17. keys_1 = key;
  18. }
  19. comparer = function (a, b) {
  20. for (var i = 0; i < keys_1.length; i += 1) {
  21. var prop = keys_1[i];
  22. if (a[prop] > b[prop]) {
  23. return 1;
  24. }
  25. if (a[prop] < b[prop]) {
  26. return -1;
  27. }
  28. }
  29. return 0;
  30. };
  31. }
  32. arr.sort(comparer);
  33. return arr;
  34. }
  35. exports.default = sortBy;
  36. //# sourceMappingURL=sort-by.js.map