UNPKG

misc-utils-of-mine-generic

Version:

Miscellaneous utilities for JavaScript/TypeScript that I often use

25 lines (23 loc) 668 B
/** * Returns a hash code for a string. * (Compatible to Java's String.hashCode()) * * The hash code for a string object is computed as * `s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]` * using number arithmetic, where s[i] is the i th character * of the given string, n is the length of the string, * and ^ indicates exponentiation. * (The hash value of the empty string is zero.) * * @param {string} s a string * @return {number} a hash code value for the given string. */ export function hashCode(s: string) { var h = 0, l = s.length, i = 0 if (l > 0) { while (i < l) { h = (h << 5) - h + s.charCodeAt(i++) | 0 } } return h }