UNPKG

815 BJavaScriptView Raw
1import isArray from './is-array';
2import isFunction from './is-function';
3/**
4 * @param {Array} arr The array to iterate over.
5 * @param {Function} [fn] The iteratee invoked per element.
6 * @return {*} Returns the maximum value.
7 * @example
8 *
9 * var objects = [{ 'n': 1 }, { 'n': 2 }];
10 *
11 * maxBy(objects, function(o) { return o.n; });
12 * // => { 'n': 2 }
13 *
14 * maxBy(objects, 'n');
15 * // => { 'n': 2 }
16 */
17export default (function (arr, fn) {
18 if (!isArray(arr)) {
19 return undefined;
20 }
21 var maxItem;
22 var max = -Infinity;
23 for (var i = 0; i < arr.length; i++) {
24 var item = arr[i];
25 var v = isFunction(fn) ? fn(item) : item[fn];
26 if (v > max) {
27 maxItem = item;
28 max = v;
29 }
30 }
31 return maxItem;
32});
33//# sourceMappingURL=max-by.js.map
\No newline at end of file