ramda
Version:
A practical functional library for JavaScript programmers.
31 lines • 851 B
JavaScript
var _curry3 = /*#__PURE__*/require("./internal/_curry3.js");
var max = /*#__PURE__*/require("./max.js");
/**
* Takes a function and two values, and returns whichever value produces the
* larger result when passed to the provided function.
*
* @func
* @memberOf R
* @since v0.8.0
* @category Relation
* @sig Ord b => (a -> b) -> a -> a -> a
* @param {Function} f
* @param {*} a
* @param {*} b
* @return {*}
* @see R.max, R.minBy
* @example
*
* // square :: Number -> Number
* const square = n => n * n;
*
* R.maxBy(square, -3, 2); //=> -3
*
* R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5
* R.reduce(R.maxBy(square), 0, []); //=> 0
*/
var maxBy = /*#__PURE__*/_curry3(function maxBy(f, a, b) {
var resultB = f(b);
return max(f(a), resultB) === resultB ? b : a;
});
module.exports = maxBy;