UNPKG

944 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 const 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) => arr.indexOf(a) === i);
26}
27exports.uniq = uniq;
28function uniqWith(arr, fn) {
29 return arr.filter((a, i) => {
30 return !arr.find((b, j) => j > i && fn(a, b));
31 });
32}
33exports.uniqWith = uniqWith;