はじめに
この実験では、SDBM アルゴリズムを使用して文字列を整数にハッシュ化する方法を検討します。入力文字列のハッシュを作成するために、String.prototype.split() と Array.prototype.reduce() を使用し、ビットシフトを利用します。この実験の目的は、ハッシュ化の概念と、データに固有の識別子を生成するためにどのように使用できるかを紹介することです。
JavaScript を使って文字列を数値にハッシュ化する方法
JavaScript を使って入力文字列を整数にハッシュ化するには、次の手順に従います。
- ターミナル/SSH を開き、コーディングの練習を始めるために
nodeと入力します。 String.prototype.split()とArray.prototype.reduce()メソッドを使って、ビットシフトを利用して入力文字列のハッシュを作成します。- ハッシュ化アルゴリズムを実装する
sdbm関数のコードは次のとおりです。
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
これにより、入力文字列 "name" のハッシュ値が返されます。
まとめ
おめでとうございます!文字列から数値へのハッシュ化の実験を完了しました。スキルを向上させるために、LabEx でさらに多くの実験を行うことができます。