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 minimum value.
|
7 | * @example
|
8 | *
|
9 | * var objects = [{ 'n': 1 }, { 'n': 2 }];
|
10 | *
|
11 | * minBy(objects, function(o) { return o.n; });
|
12 | * // => { 'n': 1 }
|
13 | *
|
14 | * minBy(objects, 'n');
|
15 | * // => { 'n': 1 }
|
16 | */
|
17 | export default (function (arr, fn) {
|
18 | if (!isArray(arr)) {
|
19 | return undefined;
|
20 | }
|
21 | var minItem;
|
22 | var min = 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 < min) {
|
27 | minItem = item;
|
28 | min = v;
|
29 | }
|
30 | }
|
31 | return minItem;
|
32 | });
|
33 | //# sourceMappingURL=min-by.js.map |
\ | No newline at end of file |