Files
react-native-devtools-frontend/node_modules/ramda/src/sortBy.js
T
Jack Franklin 8b9aa2fca6 Prefer eslint-mocha for linting .only in tests
DISABLE_THIRD_PARTY_CHECK=new npm module causes package-lock change

We can get rid of a custom script and use ESLint for these rules.

Additionally this means editors will highlight the issue in the editor.

Change-Id: I552b52e7f07b4e7430b3f685dbc3b5fad36ffff2
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2052167
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
Commit-Queue: Jack Franklin <jacktfranklin@chromium.org>
2020-02-12 18:12:22 +00:00

45 lines
1.2 KiB
JavaScript

var _curry2 = /*#__PURE__*/require('./internal/_curry2');
/**
* Sorts the list according to the supplied function.
*
* @func
* @memberOf R
* @since v0.1.0
* @category Relation
* @sig Ord b => (a -> b) -> [a] -> [a]
* @param {Function} fn
* @param {Array} list The list to sort.
* @return {Array} A new list sorted by the keys generated by `fn`.
* @example
*
* const sortByFirstItem = R.sortBy(R.prop(0));
* const pairs = [[-1, 1], [-2, 2], [-3, 3]];
* sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]
*
* const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));
* const alice = {
* name: 'ALICE',
* age: 101
* };
* const bob = {
* name: 'Bob',
* age: -10
* };
* const clara = {
* name: 'clara',
* age: 314.159
* };
* const people = [clara, bob, alice];
* sortByNameCaseInsensitive(people); //=> [alice, bob, clara]
*/
var sortBy = /*#__PURE__*/_curry2(function sortBy(fn, list) {
return Array.prototype.slice.call(list, 0).sort(function (a, b) {
var aa = fn(a);
var bb = fn(b);
return aa < bb ? -1 : aa > bb ? 1 : 0;
});
});
module.exports = sortBy;