UNPKG

588 BJavaScriptView Raw
1function id(v) {
2 return v;
3}
4function cmp(a, b) {
5 return a < b ? -1 : (a > b ? 1 : 0);
6}
7function range(x, fc = null, fm = null) {
8 var fc = fc || cmp, fm = fm || id;
9 var mi = -1, mu, mv;
10 var ni = -1, nu, nv;
11 var i = -1;
12 for (var u of x) {
13 var v = fm(u, ++i, x);
14 if (i === 0 || fc(v, mv) < 0) {
15 mi = i;
16 mu = u;
17 mv = v;
18 }
19 if (i === 0 || fc(v, nv) > 0) {
20 ni = i;
21 nu = u;
22 nv = v;
23 }
24 }
25 return [[mi, mu], [ni, nu]];
26}
27export { range as default };