1 | "use strict";
|
2 | exports.__esModule = 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 |
|
\ | No newline at end of file |