UNPKG

987 BJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3function sortBy(arr, fn) {
4 function compare(a, b) {
5 a = a === undefined ? 0 : a;
6 b = b === undefined ? 0 : b;
7 if (Array.isArray(a) && Array.isArray(b)) {
8 if (a.length === 0 && b.length === 0)
9 return 0;
10 let diff = compare(a[0], b[0]);
11 if (diff !== 0)
12 return diff;
13 return compare(a.slice(1), b.slice(1));
14 }
15 if (a < b)
16 return -1;
17 if (a > b)
18 return 1;
19 return 0;
20 }
21 return arr.sort((a, b) => compare(fn(a), fn(b)));
22}
23exports.sortBy = sortBy;
24function uniq(arr) {
25 return arr.filter((a, i) => {
26 return !arr.find((b, j) => j !== i && b === a);
27 });
28}
29exports.uniq = uniq;
30function uniqWith(arr, fn) {
31 return arr.filter((a, i) => {
32 return !arr.find((b, j) => j !== i && fn(a, b));
33 });
34}
35exports.uniqWith = uniqWith;