diginext-utils
Version:
README.md
36 lines • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.min = min;
/**
* Finds the minimum value in an array.
* If a key is provided, finds the minimum value of that property from each object.
*
* @template T - The type of elements in the array
* @param array - The array to search
* @param key - Optional key to find minimum value from objects
* @returns The minimum value, or 0 if array is empty
*
* @example
* ```ts
* min([3, 1, 4, 1, 5]); // 1
* min([{ value: 5 }, { value: 2 }, { value: 8 }], 'value'); // 2
* min([]); // 0
* ```
*/
function min(array, key) {
if (!Array.isArray(array) || array.length === 0) {
return 0;
}
if (key !== undefined) {
return array.reduce((minVal, item) => {
const value = item[key];
const numValue = typeof value === "number" ? value : Infinity;
return numValue < minVal ? numValue : minVal;
}, Infinity);
}
return array.reduce((minVal, value) => {
const numValue = typeof value === "number" ? value : Infinity;
return numValue < minVal ? numValue : minVal;
}, Infinity);
}
//# sourceMappingURL=min.js.map