amos-tool
Version:
amos ui tool
30 lines (28 loc) • 793 B
JavaScript
;
var _common = require("./_common"), map = function(r, n, o) {
n = _common.cb(n, o);
for (var e = !_common.isArrayLike(r) && _common.keys(r), i = (e || r).length, t = Array(i), c = 0; c < i; c++) {
var u = e ? e[c] : c;
t[c] = n(r[u], u, r);
}
return t;
}, pluck = function(r, n) {
return map(r, _common.property(n));
}, sortBy = function(r, n, o) {
var e = 0;
return n = _common.cb(n, o), pluck(map(r, function(r, o, i) {
return {
value: r,
index: e++,
criteria: n(r, o, i)
};
}).sort(function(r, n) {
var o = r.criteria, e = n.criteria;
if (o !== e) {
if (o > e || void 0 === o) return 1;
if (o < e || void 0 === e) return -1;
}
return r.index - n.index;
}), "value");
};
module.exports = sortBy;