Hash 可以看作是一个 关联数组,它对每一个值都绑定了一个唯一的键(值并不必须是唯一的), 然而,它不能保证迭代时元素的顺序始终一致。因为 JavaScript 程序语言的特性,每个对象实际上都是一个 hash,下面我们就来详细探讨下。
性能很高的计算字符串或文件hash值的函数,比md5速度快得多,自己一直用着,重复的几率为很底,一般的应用足够,
- var I64BIT_TABLE =
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-'.split('');
- function hash(input){
- var hash = 5381;
- var i = input.length - 1;
- if(typeof input == 'string'){
- for (; i > -1; i--)
- hash += (hash << 5) + input.charCodeAt(i);
- }
- else{
- for (; i > -1; i--)
- hash += (hash << 5) + input[i];
- }
- var value = hash & 0x7FFFFFFF;
- var retValue = '';
- do{
- retValue += I64BIT_TABLE[value & 0x3F];
- }
- while(value >>= 6);
- return retValue;
- }
以上所述就是本文的全部内容了,希望大家能够喜欢。
新闻热点
疑难解答
图片精选