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 |
|
\ | No newline at end of file |