yuxuannnn_utils
Version:
80 lines (79 loc) • 2.35 kB
JavaScript
;
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);
};