30秒学会 JavaScript 片段 · 2018年8月29日

30秒学会 JavaScript 片段 – sdbm

Hashes the input string into a whole number.

Use String.prototype.split('') and Array.prototype.reduce() to create a hash of the input string, utilizing bit shifting.

代码片段

const sdbm = str => {
  let arr = str.split('');
  return arr.reduce(
    (hashCode, currentVal) =>
      (hashCode = currentVal.charCodeAt(0) + (hashCode << 6) + (hashCode << 16) - hashCode),
    0
  );
};

使用样例

sdbm('name'); // -3521204949