UNPKG

@dvcol/common-utils

Version:

Typescript library for common utility functions and constants

38 lines (36 loc) 1.37 kB
// lib/common/utils/math.utils.ts var arrayMax = (array, prop, filter) => array?.length ? array?.reduce((prev, current) => { if (filter && !filter(current)) return prev; if (prev[prop] === void 0 || current[prop] !== void 0 && current[prop] > prev[prop]) { return current; } return prev; }) : void 0; var findClosestMatch = (value, array) => { if (!array?.length) return "original"; let closestMatch = array[0]; let minDifference = Math.abs(value - parseInt(array[0].substring(1), 10)); for (let i = 1; i < array.length; i += 1) { const currentValue = parseInt(array[i].substring(1), 10); const difference = Math.abs(value - currentValue); if (difference < minDifference) { minDifference = difference; closestMatch = array[i]; } } if (!closestMatch) return "original"; if (Math.abs(parseInt(closestMatch.substring(1), 10)) * 2 < Math.abs(value)) return "original"; return closestMatch; }; var clamp = (val, min, max) => Math.min(Math.max(val, min), max); var randomInt = (min = 0, max = 100) => Math.floor(Math.random() * (max - min + 1)) + min; var round = (value, precision = 0) => Math.round(value * 10 ** precision) / 10 ** precision; var percent = (value, total = 100, precision = 2) => round(value / total * 100, precision); export { arrayMax, findClosestMatch, clamp, randomInt, round, percent };