Hash对象(关联数组)是Prototype新建的一个对象,也是属于Prototype的基本js类库,Prototype中的Hash只是javascript的关联数组(对象)而已。要创建一个Hash对象可以调用$H(object)方法,使用这个方法将生成一个基于object对象的Hash对象,生成的Hash对象将object的属性名作为key,将object的属性值最为键值,因为javascript本身的特点(对象本身就是关联数组) ,所以实现Hash也很简单。另外大家需要知道的是Prototype中的Hash对象继承自Enumerable对象,所以也具有Enumerable对象的所有属性和方法,它具有以下的方法:
keys(): 返回hash的键值数组
values(): 返回值得数组
merge(hash): 合并两个hash
toQueryString(): 跟string的toQueryParams方法想法,将hash转化为一个querystring, 会调用encodeURIComponent对键和值进行编码
inspect(): hash的字符串表示
因为hash只是javascript的一个普通的对象而已,所以添加一个键值对使用: hash[key]=value就可以了,删除一个键值对使用 detele hash[key]就可以了
另外还可以使用下面来实现js的hash表,嘻嘻
<script type="text/javascript">
<!--
function Hash() {
this.length = 0;
this.items = new Array();
for (var i = 0; i < arguments.length; i += 2) {
if (typeof(arguments[i + 1]) != 'undefined') {
this.items[arguments[i]] = arguments[i + 1];
this.length++;
}
}
this.removeItem = function(in_key)
{
var tmp_value;
if (typeof(this.items[in_key]) != 'undefined') {
this.length--;
var tmp_value = this.items[in_key];
delete this.items[in_key];
}
return tmp_value;
}
this.getItem = function(in_key) {
return this.items[in_key];
}
this.setItem = function(in_key, in_value)
{
if (typeof(in_value) != 'undefined') {
if (typeof(this.items[in_key]) == 'undefined') {
this.length++;
}
this.items[in_key] = in_value;
}
return in_value;
}
this.hasItem = function(in_key)
{
return typeof(this.items[in_key]) != 'undefined';
}
}
var myHash = new Hash(
'one', 1,
'two', 2,
'three', 3,
);
document.write( myHash.getItem('two') );
//-->
</script>
<form name="h0">
KEY: <input type="text" name="h1" value="two" />
VALUE: <input type="text" name="h2" value="222222" />
<input type="button" value="setItem" onclick="myHash.setItem(h0.h1.value,h0.h2.value);" />
<input type="button" value="getItem" onclick="alert(myHash.getItem(h0.h1.value));" />
分享到:
相关推荐
Hash对象(关联数组)是Prototype新建的一个对象,要创建一个Hash对象可以调用$H(object)方法,因为javascript本身的特点(对象本身就是关联数组) ,所以实现Hash也很简单,Prototype中的Hash只是javascript的关联数组...
单页后退前进刷新 jquery.hash.min.js 和 jquery.ba-hashchange.min.js
MD5校验工具Hash.exe使用说明.pdf
hash.js 只是一个自行车棚。 安装 npm install hash.js 用法 var hash = require ( 'hash.js' ) hash . sha256 ( ) . update ( 'abc' ) . digest ( 'hex' ) 选择性哈希用法 var sha512 = require ( 'hash.js/lib/...
在获取到mysql用户的hash后, 可用hash直接登陆mysql进行操作 比如我们注入出数据库的hash,但是没办法拿到webshell 我们可以使用mysql_hash,用hash登陆并控制数据库 使用方法: mysql_hash.exe -u root -p < 1.txt...
Enumerable是一个抽象对象(需要说明的是,javascript中并没有类的概念,所指的类也就是一个函数,继承一般指的是一个对象(父)将它的方法属性copy(通过Object.extend, copy的是引用)到子类(函数)的prototype属性(一...
Hash.js Hash.js是小额付款服务javascript可嵌入库。 您可以使用chrome扩展程序触发小额付款交易,方法是自己托管该小部件(在本地进行编译),也可以使用我们的cdn'ed小部件。Hash.js是一个开源项目,请参阅“贡献...
此jar包可使用Java 和js调用,唯一参数传入带路径的文件名即可将文件内容加密为md5 值返回,可用作文件传输过程中的文件内容是否丢失的校验(发送时在文件名中写入文件md5值),接收时根据文件内容再次加密为md5,...
murmurHash3.js, 在javascript中,所有 MurmurHash3, MurmurHash3.jsMurmurHash3 算法的javascript实现。 用法// Return a 32bit hash as a unsigned int:> murmurHash3.x86.h
哈希.js hash.js是一个处理的超小型框架得到 /* * Given the following url: http://www.example.net/#!&foo=bar&array[]=1&array[]=2 */hash ( 'foo' ) ; // 'bar'hash ( 'array' ) ; // ['1', '2']hash ( ) ; // {...
HASH.MD5
Hash.zip 校验工具 实用工具 校验MD5 CRC32 ...
基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发源码-哈希计算工具 Java-hash.zip 基于java的开发...
MurmurHash3.js-JavaScript中的 。 用法 > const murmurHash3 = require ( 'murmurhash3.js' ) ; // Return a 32bit hash as an unsigned integer: > murmurHash3 . x86 . hash32 ( "I will not buy this record, it...
uthash开源的hash函数实现,里面的uthash.h可用
engine-hash.h
hash.route.js,一个简单灵活的路由系统。设置哈希路由侦听器和不同的匹配规则: 空场比赛。 // Match empty routehash ( "" ) . on ( "change" , function ( evt ) { console . log ( arguments ) ;} ) ; 完全符合...
需要的文件资源(base64.js,crypto.js, hmac.js, sha1.js)
HASH是一个用于查看任意文件的哈希值的工具。Hash能查看的文件信息包括MD5、SHA1与CRC32,用户通过这些信息能够轻松了解到文件经过了哪些修改,对于防木马、防病毒、防盗版等方面有着非常重要的作用,快到碗里来
地理哈希 Node.js 和浏览器的 Geohash 库。用法geohash.encode(纬度,经度[,精度]) 将一对纬度和经度编码为 geohash。 第三个参数是可选的,您可以指定此哈希字符串的长度,这也会影响 geohash 的精度。geohash....