这个算法是一个简单的散列算法,它把输入的字符串 str
散列成一个整数。
使用 split('')
和 Array.reduce()
创建输入字符串的散列,利用位移。
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
更多代码 JavaScript 实用代码片段 请查看 https://www.7psus5.com/30-seconds-of-code/
最新评论
写的挺好的
有没有兴趣翻译 impatient js? https://exploringjs.com/impatient-js/index.html
Flexbox playground is so great!
感谢总结。
awesome!
这个好像很早就看到类似的文章了
比其他的教程好太多了
柯理化讲的好模糊…没懂