소개
이 랩에서는 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 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.