如何改写JavaScript的hashCode函数实现代码为长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计644个文字,预计阅读时间需要3分钟。
为了提高使用的便利性,略微改进了以下代码:
javascriptfunction hashCode(str) { var hash=0, i, chr, len; if (str.length===0) return hash; for (i=0, len=str.length; i 为了使用的方便,稍稍再改良了一下
function hashcode(str) {
var hash = 0, i, chr, len;
if (str.length === 0) return hash;
for (i = 0, len = str.length; i < len; i++) {
chr = str.charCodeAt(i);
hash = ((hash << 5) - hash) + chr;
hash |= 0; // Convert to 32bit integer
}
return hash;
}
hashcode("this is a string")
//-1853110172
这里接受的参数是一个 String,其它类型怎么办?可以先做一个统一的处理,比如 hashcode(JSON.stringify(obj))
序列化之后再使用 hashCode 函数,基本所有类型数据都通吃,除了含有循环嵌套的对象。
本文共计644个文字,预计阅读时间需要3分钟。
为了提高使用的便利性,略微改进了以下代码:
javascriptfunction hashCode(str) { var hash=0, i, chr, len; if (str.length===0) return hash; for (i=0, len=str.length; i 为了使用的方便,稍稍再改良了一下
function hashcode(str) {
var hash = 0, i, chr, len;
if (str.length === 0) return hash;
for (i = 0, len = str.length; i < len; i++) {
chr = str.charCodeAt(i);
hash = ((hash << 5) - hash) + chr;
hash |= 0; // Convert to 32bit integer
}
return hash;
}
hashcode("this is a string")
//-1853110172
这里接受的参数是一个 String,其它类型怎么办?可以先做一个统一的处理,比如 hashcode(JSON.stringify(obj))
序列化之后再使用 hashCode 函数,基本所有类型数据都通吃,除了含有循环嵌套的对象。

