UNPKG

amos-tool

Version:

amos ui tool

30 lines (28 loc) 793 B
"use strict"; 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;