UNPKG

ts-ds-tool

Version:

Data structure and algorithm of TypeScript

41 lines (40 loc) 978 B
export function hash(str) { let hashed = 0; for (let ii = 0; ii < str.length; ii++) { hashed = (31 * hashed + str.charCodeAt(ii)) | 0; } return smi(hashed); } export function toString(value) { const type = typeof value; if (type === "string") { return value; } else if (type === "number" || type === "boolean" || type === "function") { return value.toString(); } return JSON.stringify(value); } export function defaultCompare(a, b, key) { if (key) { return a[key] >= b[key]; } return a >= b; } export function defaultEqualCompare(a, b) { if (a === b) { return 0; } return a > b ? 1 : -1; } export function random(begin, end) { return Math.round(Math.random() * (end - begin) + begin); } export function swap(arr, i, j) { const temp = arr[j]; arr[j] = arr[i]; arr[i] = temp; } function smi(i32) { return ((i32 >>> 1) & 0x40000000) | (i32 & 0xbfffffff); }