UNPKG

yuxuannnn_utils

Version:
80 lines (79 loc) 2.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.findMinInArray = exports.findMaxInArray = exports.getRandomString = exports.getRandomNumber = exports.boundary = exports.boundaryMax = exports.boundaryMin = exports.sum = void 0; /** * 加和 */ function sum(...args) { return args.reduce((prev, cur) => prev + cur); } exports.sum = sum; /** 限制最小值 */ const boundaryMin = (value, min) => { return value >= min ? value : min; }; exports.boundaryMin = boundaryMin; /** 限制最大值 */ const boundaryMax = (value, max) => { return value <= max ? value : max; }; exports.boundaryMax = boundaryMax; /** * 给定一个值和能取到的最大值以及最小值,返回边界内的数据,能取到边界值 * @param value * @param min * @param max */ const boundary = (value, min, max) => { value = (0, exports.boundaryMin)(value, min); return (0, exports.boundaryMax)(value, max); }; exports.boundary = boundary; /** * 生成一个随机整数,包括min不包括max * @param min * @param max * @returns */ const getRandomNumber = (min, max) => { // Math.random() [0,1) return Math.floor(Math.random() * (max - min) + min); }; exports.getRandomNumber = getRandomNumber; /** * 生成一个随机的字符串 * @param len * @returns */ const getRandomString = (len) => { return Math.random().toString(16).substring(2).substring(0, len); }; exports.getRandomString = getRandomString; const findMaxInArray = (array, compare) => { compare = compare || exports.findMaxInArray.compare; if (array.length === 0) return; let max = array[0]; for (let i = 1; i < array.length; i++) { max = compare(max, array[i]); } return max; }; exports.findMaxInArray = findMaxInArray; exports.findMaxInArray.compare = function (a, b) { return Math.max(a, b); }; const findMinInArray = (array, compare) => { compare = compare || exports.findMinInArray.compare; if (array.length === 0) return; let min = array[0]; for (let i = 1; i < array.length; i++) { min = compare(min, array[i]); } return min; }; exports.findMinInArray = findMinInArray; exports.findMinInArray.compare = function (a, b) { return Math.min(a, b); };