var Hash = function(h){
this._data = new Object();
}
function Hash$clear(){
delete this._data;
this._data = new Object();
}
function Hash$add(key,value){
if(!key || typeof(value) === 'undefined') return false;
this._data[key] = {key: key,value: value};
return true;
}
function Hash$addRange(h){
for(var key in h._data){
var item = h._data[key];
if(typeof(item) !== 'undefined'){
this.add(item.key,item.value);
}
}
}
function Hash$remove(key){
if(!key) return undefined;
var item = this._data[key];
delete this._data[key];
return item;
}
function Hash$removeAt(index){
if(isNaN(index)) return undefined;
var i = 0;
for(var key in this._data){
if(i == index){
return this.remove(key);
}
i++;
}
return undefined;
}
function Hash$removeRange(startIndex,endIndex){
if(isNaN(startIndex) || isNaN(endIndex)) return undefined;
var i = 0;
var h = new Hash();
for(var key in this._data){
if(i >= startIndex && i<= endIndex){
h.add(key,this.remove(key).value);
}
i++;
}
return h;
}
function Hash$getCount(){
var i = 0;
for(var key in this._data) i++;
return i;
}
function Hash$forEach(method,instance){
var i = 0;
for(var key in this._data){
var item = this._data[key];
if(typeof(item) !== 'undefined'){
method.call(instance, item, i, this);
i++;
}else{
delete this._data[key];
}
}
}
function Hash$getKeys(){
var arr = new Array();
for (var key in this._data){
var item = this._data[key];
arr.push(item.key);
}
return arr;
}
function Hash$getValues(){
var arr = new Array();
for (var key in this._data){
var item = this._data[key];
arr.push(item.value);
}
return arr;
}
function Hash$getItem(key){
if(!key) return undefined;
var item = this._data[key];
if (typeof(item) !== 'undefined'){
return item;
}else{
delete this._data[key];
return undefined;
}
}
function Hash$containsKey(key){
if(typeof(this.getItem(key)) !== 'undefined'){
return true;
}
return false;
}
function Hash$containsValue(value){
for(var key in this._data){
if(value === this._data[key].value){
return true;
}
}
return false;
}
Hash.prototype = {
_data : null,
_keys : null,
clear : Hash$clear,
add : Hash$add,
addRange : Hash$addRange,
remove : Hash$remove,
removeAt : Hash$removeAt,
removeRange : Hash$removeRange,
getCount : Hash$getCount,
forEach : Hash$forEach,
getKeys : Hash$getKeys,
getValues : Hash$getValues,
getItem: Hash$getItem,
containsKey: Hash$containsKey,
containsValue: Hash$containsValue
}
Hash.__typeName = 'Hash';
Hash.__class = true;
分享到:
相关推荐
murmurhash-js, MurmurHash算法的优化JavaScript实现 MurmurHash.jsMurmurHash算法的优化JavaScript实现。这些算法采用一个JavaScript字符串( 还有种子),并快速创建一个非加密的32位 散列。 我的意思是亚毫秒性能。...
利用 Geohash 技术建地图索引,比传统的经纬度索引及 spatial 索引效率更高。 这是基于 Javascript 的geohash 实现,并实现了相邻的块的计算。
C语言实现hash算法源码,实现了sha256,sha384,sha512三种哈希算法,项目中用到的,提取出来测试使用的。
详解JavaScript中Hash Map映射结构的实现_.docx
使用JavaScript的图片哈希用javascript实现的图片相似度比较算法区块哈希差异哈希平均哈希哈希值中位数颜色直方图相似度依存关系" dependencies " : { " get-pixels " : " ^3.3.2 " , " sharp " : " ^0.25.3 "}用法...
性能很高的计算字符串或文件hash值的函数,比md5速度快得多,自己一直用着,重复的几率为很底,一般的应用足够, var I64BIT_TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-'.split...
C语言实现的Hash表(代码)。C语言实现的Hash表(代码)。C语言实现的Hash表(代码)。C语言实现的Hash表(代码)。
murmurHash3.js, 在javascript中,所有 MurmurHash3, MurmurHash3.jsMurmurHash3 算法的javascript实现。 用法// Return a 32bit hash as a unsigned int:> murmurHash3.x86.h
JavaScript的hash和加密模块crypto-js的所有版本,从2.5到3.1,官网原始下载,可用
uthash开源的hash函数实现,里面的uthash.h可用
散列算法的 javascript 实现。 安装 $ npm install murmur-hash 用法 var murmurHash3 = require('murmur-hash').v3; 例子 // Return a 32bit hash as a unsigned int: > murmurHash3.x86.hash32("I will not ...
stm32f407平台上实现的hash算法
Hash函数集合,包含主流的hash函数: nginx_hash算法,OpenSSL_hash算法,RSHash,JSHash,PJWHash,ELFHash,BKDRHash,DJBHash,DEKHash,APHash等等!
python实现Hash和HMAC算法工程文件 Hash详解博客地址:https://blog.csdn.net/m0_52316372/article/details/125696086 HMAC详解博客地址:https://blog.csdn.net/m0_52316372/article/details/125696187
MurmurHash3 128 位MurmurHash3 x86 128 位用 JavaScript 实现。安装npm install --save murmur-128用法 import murmur128 from 'murmur-128'murmur128 ( 'linus' )//=> ArrayBuffer { 16 }murmur128 ( new ...
散列的C语言实现:链地址法、线性探测法、双重散列表
自己实现的hash表,自己的hash函数,优化了的内存管理
uthash 是C的比较优秀的开源代码,它实现了常见的hash操作函数,例如查找、插入、删除等待。该套开源代码采用宏的方式实现hash函数的相关功能,支持C语言的任意数据结构最为key值,甚至可以采用多个值作为key,无论...
Geohash算法实现,经纬度到geohash编码的实现