ut2
Version:
一个现代 JavaScript 实用工具库。[点击查看在线文档]。
25 lines (22 loc) • 1.03 kB
JavaScript
import identity from './identity.js';
import createIteratee from './internals/createIteratee.js';
import { compareMultiple } from './internals/compare.js';
import isArray from './isArray.js';
import forEach from './forEach.js';
import { nativeUndefined } from './internals/native.js';
var orderBy = function (collection, iteratees, orders) {
var result = [];
iteratees = (isArray(iteratees) ? iteratees : iteratees !== nativeUndefined ? [iteratees] : [identity]);
orders = (isArray(orders) ? orders : orders !== nativeUndefined ? [orders] : []);
var index = -1;
forEach(collection, function (item, key, arr) {
var criteria = iteratees.map(function (iteratee) { return createIteratee(iteratee)(item, key, arr); });
result.push({
criteria: criteria,
index: ++index,
value: item
});
});
return result.sort(function (a, b) { return compareMultiple(a, b, orders); }).map(function (item) { return item.value; });
};
export { orderBy as default };