UNPKG

1.03 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var tslib_1 = require("tslib");
4var is_array_1 = (0, tslib_1.__importDefault)(require("./is-array"));
5var is_function_1 = (0, tslib_1.__importDefault)(require("./is-function"));
6/**
7 * @param {Array} arr The array to iterate over.
8 * @param {Function} [fn] The iteratee invoked per element.
9 * @return {*} Returns the minimum value.
10 * @example
11 *
12 * var objects = [{ 'n': 1 }, { 'n': 2 }];
13 *
14 * minBy(objects, function(o) { return o.n; });
15 * // => { 'n': 1 }
16 *
17 * minBy(objects, 'n');
18 * // => { 'n': 1 }
19 */
20exports.default = (function (arr, fn) {
21 if (!(0, is_array_1.default)(arr)) {
22 return undefined;
23 }
24 var minItem;
25 var min = Infinity;
26 for (var i = 0; i < arr.length; i++) {
27 var item = arr[i];
28 var v = (0, is_function_1.default)(fn) ? fn(item) : item[fn];
29 if (v < min) {
30 minItem = item;
31 min = v;
32 }
33 }
34 return minItem;
35});
36//# sourceMappingURL=min-by.js.map
\No newline at end of file