{"version":3,"file":"minBy.cjs","names":[],"sources":["../../src/math/minBy.ts"],"sourcesContent":["/**\n * This method is like min except that it accepts iteratee which is invoked for each element\n * in array to generate the criterion by which the value is ranked.\n * The iteratee is invoked with one argument: (value).\n *\n * @param array - The array to iterate over\n * @param iteratee - The iteratee invoked per element\n * @returns Returns the minimum value\n *\n * @example\n * minBy([{ n: 1 }, { n: 2 }, { n: 3 }], (o) => o.n) // => { n: 1 }\n * minBy([], (o) => o.n) // => undefined\n */\nexport function minBy<T>(array: T[], iteratee: (item: T) => number): T | undefined {\n  if (!Array.isArray(array) || array.length === 0) {\n    return undefined;\n  }\n\n  let minItem = array[0];\n  let minValue = iteratee(array[0]);\n\n  for (let i = 1; i < array.length; i++) {\n    const value = iteratee(array[i]);\n    if (value < minValue) {\n      minValue = value;\n      minItem = array[i];\n    }\n  }\n\n  return minItem;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAaA,SAAgB,MAAS,OAAY,UAA8C;CACjF,IAAI,CAAC,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,GAC5C;CAGF,IAAI,UAAU,MAAM;CACpB,IAAI,WAAW,SAAS,MAAM,EAAE;CAEhC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;EACrC,MAAM,QAAQ,SAAS,MAAM,EAAE;EAC/B,IAAI,QAAQ,UAAU;GACpB,WAAW;GACX,UAAU,MAAM;EAClB;CACF;CAEA,OAAO;AACT"}