/** 判断两个值是否相等 */ export function equaln(v1: number, v2: number, fuzz = 1e-5) { return Math.abs(v1 - v2) <= fuzz } /** 修正数组索引号 */ export function FixIndex(index: number, arr: Array | number) { let count = (Array.isArray(arr)) ? arr.length : arr if (index < 0) return count + index else if (index >= count) return index - count else return index } /** * 获取数组最大元素的索引号 * @param compart t2大于t1返回t2 * @returns 索引 */ export function Max(arr: T[], compart: (t1: T, t2: T) => boolean): number { let best: T = arr[0] let bestIndex = 0 for (let i = 1; i < arr.length; i++) { let t1 = arr[i] if (compart(best, t1)) { best = t1 bestIndex = i } } return bestIndex }