39 lines
796 B
TypeScript
39 lines
796 B
TypeScript
/** 判断两个值是否相等 */
|
|
export function equaln(v1: number, v2: number, fuzz = 1e-5)
|
|
{
|
|
return Math.abs(v1 - v2) <= fuzz
|
|
}
|
|
|
|
/** 修正数组索引号 */
|
|
export function FixIndex(index: number, arr: Array<any> | 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<T>(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
|
|
}
|