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;
- }
以上所述就是本文的全部內容了,希望大家能夠喜歡。
新聞熱點
疑難解答
圖片精選