Hash 可以看作是一個(gè) 關(guān)聯(lián)數(shù)組,它對(duì)每一個(gè)值都綁定了一個(gè)唯一的鍵(值并不必須是唯一的), 然而,它不能保證迭代時(shí)元素的順序始終一致。因?yàn)?JavaScript 程序語(yǔ)言的特性,每個(gè)對(duì)象實(shí)際上都是一個(gè) hash,下面我們就來(lái)詳細(xì)探討下。
性能很高的計(jì)算字符串或文件hash值的函數(shù),比md5速度快得多,自己一直用著,重復(fù)的幾率為很底,一般的應(yīng)用足夠,
- 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;
- }
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
新聞熱點(diǎn)
疑難解答
圖片精選