UNPKG

ut2

Version:

一个现代 JavaScript 实用工具库。[点击查看在线文档]。

25 lines (22 loc) 1.03 kB
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 };