将字符串哈希为数字

Beginner

This tutorial is from open-source community. Access the source code

简介

在这个实验中,我们将探索如何使用 SDBM 算法将字符串哈希为一个整数。我们将使用 String.prototype.split() 和 Array.prototype.reduce() 来创建输入字符串的哈希值,并利用位运算。本实验的目的是向你介绍哈希的概念,以及如何使用它为数据生成唯一标识符。

如何使用 JavaScript 将字符串哈希为数字

要使用 JavaScript 将输入字符串哈希为一个整数,请执行以下步骤:

  1. 打开终端/SSH 并输入node以开始练习编码。
  2. 使用String.prototype.split()Array.prototype.reduce()方法,利用位运算创建输入字符串的哈希值。
  3. 以下是实现哈希算法的sdbm函数的代码:
const sdbm = (str) => {
  let arr = str.split("");
  return arr.reduce(
    (hashCode, currentVal) =>
      (hashCode =
        currentVal.charCodeAt(0) +
        (hashCode << 6) +
        (hashCode << 16) -
        hashCode),
    0
  );
};
  1. 要测试该函数,请使用字符串参数调用它:
sdbm("name"); // -3521204949

这将返回输入字符串“name”的哈希值。

总结

恭喜你!你已经完成了“将字符串哈希为数字”实验。你可以在 LabEx 中练习更多实验来提升你的技能。