Einen String in eine Zahl hashen

JavaScriptJavaScriptBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir untersuchen, wie man einen String mithilfe des SDBM-Algorithmus in eine Ganzzahl hashen kann. Wir werden String.prototype.split() und Array.prototype.reduce() verwenden, um einen Hash des Eingabestrings zu erstellen, wobei wir Bitverschiebungen nutzen. Ziel dieses Labs ist es, Ihnen das Konzept des Hashing vorzustellen und zu zeigen, wie es verwendet werden kann, um eindeutige Bezeichner für Daten zu generieren.

Wie man in JavaScript einen String in eine Zahl hasht

Um in JavaScript einen Eingabestring in eine Ganzzahl zu hashen, folgen Sie diesen Schritten:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Codeausführung zu beginnen.
  2. Verwenden Sie die Methoden String.prototype.split() und Array.prototype.reduce(), um einen Hash des Eingabestrings zu erstellen, wobei Sie Bitverschiebungen nutzen.
  3. Hier ist der Code für die sdbm-Funktion, die den Hash-Algorithmus implementiert:
const sdbm = (str) => {
  let arr = str.split("");
  return arr.reduce(
    (hashCode, currentVal) =>
      (hashCode =
        currentVal.charCodeAt(0) +
        (hashCode << 6) +
        (hashCode << 16) -
        hashCode),
    0
  );
};
  1. Um die Funktion zu testen, rufen Sie sie mit einem String-Argument auf:
sdbm("name"); // -3521204949

Dies wird den Hash-Wert für den Eingabestring "name" zurückgeben.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Hash String Into Number" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.