From 80b201bc581d1fbf571ff78583931cafa1430ad4 Mon Sep 17 00:00:00 2001 From: Christian Bender Date: Tue, 26 Dec 2017 19:23:01 +0100 Subject: [PATCH] changed the function changed the function --- snippets/sdbmHashAlgorithm.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/snippets/sdbmHashAlgorithm.md b/snippets/sdbmHashAlgorithm.md index bedc59120..6b72e6479 100644 --- a/snippets/sdbmHashAlgorithm.md +++ b/snippets/sdbmHashAlgorithm.md @@ -1,19 +1,19 @@ ### sdbmHashAlgorithm -This algorithm is a simple hash-algorithm that hashes it's input string `s` into a whole number. +This algorithm is a simple hash-algorithm that hashs it input string 's' into a whole number. -The function iterates over each character in string `s` and updates the `hashCode` in each iteration. ``` js -const sdbm = s => { - let hashCode = 0; - for (let i = 0; i < s.length; i++) { - hashCode = s.charCodeAt(i) + (hashCode << 6) + (hashCode << 16) - hashCode; - } - return hashCode; -} -/* - console.log(sdbm("name")) // -3521204949 - console.log(sdbm("age")) // 808122783 -*/ +const sdbm = str => { + let arr = str.split(''); + return arr.reduce( (hashCode,currentVal) =>{ + return hashCode = currentVal.charCodeAt(0) + (hashCode << 6) + (hashCode << 16) - hashCode; + } + ,0) + } + +// examples +console.log(sdbm("name")) // -3521204949 +console.log(sdbm("age")) // 808122783 ``` +