sort-by.js 891 B

12345678910111213141516171819202122232425262728293031323334
  1. import isArray from './is-array';
  2. import isString from './is-string';
  3. import isFunction from './is-function';
  4. function sortBy(arr, key) {
  5. var comparer;
  6. if (isFunction(key)) {
  7. comparer = function (a, b) { return key(a) - key(b); };
  8. }
  9. else {
  10. var keys_1 = [];
  11. if (isString(key)) {
  12. keys_1.push(key);
  13. }
  14. else if (isArray(key)) {
  15. keys_1 = key;
  16. }
  17. comparer = function (a, b) {
  18. for (var i = 0; i < keys_1.length; i += 1) {
  19. var prop = keys_1[i];
  20. if (a[prop] > b[prop]) {
  21. return 1;
  22. }
  23. if (a[prop] < b[prop]) {
  24. return -1;
  25. }
  26. }
  27. return 0;
  28. };
  29. }
  30. arr.sort(comparer);
  31. return arr;
  32. }
  33. export default sortBy;
  34. //# sourceMappingURL=sort-by.js.map