javascript - Javascript根据字符串生成唯一编号

106 2

假设我有一个字符串 var input ="Foo"我需要一个唯一的数字,我尝试了一些,


for (var i = 0, len = input.length; i < len; i++) {


 output += input[i].charCodeAt(0)


}



有没有类似这样的算法?

时间: 原作者:

111 1

这个怎么样:


String.prototype.hashCode = function() {


 var hash = 0, i, chr, len;


 if (this.length === 0) return hash;


 for (i = 0, len = this.length; i < len; i++) {


 chr = this.charCodeAt(i);


 hash = ((hash << 5) - hash) + chr;


 hash |= 0; // Convert to 32bit integer


 }


 return hash;


};



原作者:
90 2

我的 fiddle展示了W8N和YSM不同的结果,跟你的逻辑一样,看看它:


let input ="W5M";


let output = '';


for (let i = 0; i < input.length; i++) {


 output += input[i].charCodeAt(0);


}



console.log(output);



https://jsfiddle.net/3fqsvkqw/4/

原作者:
83 4

下面是js字符串的简单hash函数。


function getHash(input){


 var hash = 0, len = input.length;


 for (var i = 0; i < len; i++) {


 hash = ((hash << 5) - hash) + input.charCodeAt(i);


 hash |= 0; // to 32bit integer


 }


 return hash;


}



console.log(getHash("YSM"));


console.log(getHash("W8M"));

原作者:
...