12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import _curry2 from "./internal/_curry2.js";
- /**
- * Sorts a list according to a list of comparators.
- *
- * @func
- * @memberOf R
- * @since v0.23.0
- * @category Relation
- * @sig [(a, a) -> Number] -> [a] -> [a]
- * @param {Array} functions A list of comparator functions.
- * @param {Array} list The list to sort.
- * @return {Array} A new list sorted according to the comarator functions.
- * @see R.ascend, R.descend
- * @example
- *
- * const alice = {
- * name: 'alice',
- * age: 40
- * };
- * const bob = {
- * name: 'bob',
- * age: 30
- * };
- * const clara = {
- * name: 'clara',
- * age: 40
- * };
- * const people = [clara, bob, alice];
- * const ageNameSort = R.sortWith([
- * R.descend(R.prop('age')),
- * R.ascend(R.prop('name'))
- * ]);
- * ageNameSort(people); //=> [alice, clara, bob]
- */
- var sortWith =
- /*#__PURE__*/
- _curry2(function sortWith(fns, list) {
- return Array.prototype.slice.call(list, 0).sort(function (a, b) {
- var result = 0;
- var i = 0;
- while (result === 0 && i < fns.length) {
- result = fns[i](a, b);
- i += 1;
- }
- return result;
- });
- });
- export default sortWith;
|