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:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Verwenden Sie die Methoden
String.prototype.split()undArray.prototype.reduce(), um einen Hash des Eingabestrings zu erstellen, wobei Sie Bitverschiebungen nutzen. - 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
);
};
- 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.