UNPKG

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