diff --git a/README.md b/README.md index a74229777..73c243ea1 100644 --- a/README.md +++ b/README.md @@ -177,6 +177,7 @@ ### _Uncategorized_ * [`pipeFunctions`](#pipefunctions) * [`randomHexColor`](#randomhexcolor) +* [`sdbmHashAlgorithm`](#sdbmhashalgorithm) ## Adapter @@ -2435,6 +2436,26 @@ const randomHexColor = () => { // randomHexColorCode() -> "#4144c6" ``` +[⬆ back to top](#table-of-contents) + +### sdbmHashAlgorithm + +This algorithm is a simple hash-algorithm that hashes it input string `s` into a whole number. + +Use `split('')` and `Array.reduce()` to create a hash of the input string, utilizing bit shifting. + +``` js +const sdbm = str => { + let arr = str.split(''); + return arr.reduce((hashCode, currentVal) => + hashCode = currentVal.charCodeAt(0) + (hashCode << 6) + (hashCode << 16) - hashCode + ,0) +} +// console.log(sdbm("name")) // -3521204949 +// console.log(sdbm("age")) // 808122783 +``` + + [⬆ back to top](#table-of-contents) ## Credits diff --git a/docs/index.html b/docs/index.html index 3038db820..fe57e2755 100644 --- a/docs/index.html +++ b/docs/index.html @@ -238,6 +238,7 @@

Uncategorized

pipeFunctions randomHexColor +sdbmHashAlgorithm
 

Adapter

call

@@ -1523,6 +1524,18 @@ multiplyAndAdd5(5, 2) -> 15 // randomHexColorCode() -> "#fd73a6" // randomHexColorCode() -> "#4144c6" +

sdbmHashAlgorithm

+

This algorithm is a simple hash-algorithm that hashes it input string s into a whole number.

+

Use split('') and Array.reduce() to create a hash of the input string, utilizing bit shifting.

+
const sdbm = str => {
+  let arr = str.split('');
+  return arr.reduce((hashCode, currentVal) =>
+    hashCode = currentVal.charCodeAt(0) + (hashCode << 6) + (hashCode << 16)  - hashCode
+  ,0)
+}
+// console.log(sdbm("name")) // -3521204949
+// console.log(sdbm("age")) // 808122783
+