将字符串哈希为数字

JavaScriptJavaScriptBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("`Higher-Order Functions`") subgraph Lab Skills javascript/variables -.-> lab-28373{{"`将字符串哈希为数字`"}} javascript/data_types -.-> lab-28373{{"`将字符串哈希为数字`"}} javascript/arith_ops -.-> lab-28373{{"`将字符串哈希为数字`"}} javascript/comp_ops -.-> lab-28373{{"`将字符串哈希为数字`"}} javascript/higher_funcs -.-> lab-28373{{"`将字符串哈希为数字`"}} end

如何使用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中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程