1 | import isArray from './is-array';
|
2 | import 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 | */
|
17 | export 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 |