春季来好快,悄无声息不知不觉中,草儿绿了,枝条发芽了,遍地野花油菜花开灿烂多姿,一切沐浴着春晨曙光,春风中摇弋轻摆,仿佛少女轻歌曼舞,楚楚动人。
一、javascript哈希表简介
javascript里面是没有哈希表的,一直在java,C#中有时候用到了这一种数据结构,javascript里面若没有,感觉非常不顺手。细细看来,其实javascript的object的属性其实与哈希表非常类似。
如:
var person = {};
person["name"] = "关羽";
我们只需要在其基础上再封装一些HashTable的函数,就能够得到一个精简版的哈希表。
加入函数如下:
| 函数名 | 说明 | 返回值 |
| add(key,value) | 添加项 | 无 |
| getValue(key) | 根据key取值 | object |
| remove(key) | 根据key删除一项 | 无 |
| containsKey(key) | 是否包含某个key | bool |
| containsValue(value) | 是否包含某个值 | bool |
| getValues() | 获取所有的值的数组 | array |
| getKeys() | 获取所有的key的数组 | array |
| getSize() | 获取项总数 | int |
| clear() | 清空哈希表 | 无 |
二、代码实现
其具体的实现可以查看代码,都不算很复杂的东西。
function HashTable() {
var size = 0;
var entry = new Object();
this.add = function (key, value) {
if (!this.containsKey(key)) {
size++;
}
entry[key] = value;
}
this.getValue = function (key) {
return this.containsKey(key) ? entry[key] : null;
}
this.remove = function (key) {
if (this.containsKey(key) && (delete entry[key])) {
size--;
}
}
this.containsKey = function (key) {
return (key in entry);
}
this.containsValue = function (value) {
for (var prop in entry) {
if (entry[prop] == value) {
return true;
}
}
return false;
}
this.getValues = function () {
var values = new Array();
for (var prop in entry) {
values.push(entry[prop]);
}
return values;
}
this.getKeys = function () {
var keys = new Array();
for (var prop in entry) {
keys.push(prop);
}
return keys;
}
this.getSize = function () {
return size;
}
this.clear = function () {
size = 0;
entry = new Object();
}
}
简单使用示例:
var manHT = new HashTable();
manHT.add("p1","刘备");
manHT.add("p2","关羽");
$("#div1").text(manHT.getValue("p1"));
以上是本文的全部内容,希望对大家有所帮助!
本文js实现HashTable(哈希表)的实例分析到此结束。做一名自信者,牢牢把住自我生命的罗盘,让生命充畅。做一名自谦者,慢慢拓展自我生命的容量,让生命充实。做一名自爱者,深深领会自我生命的价值,让生命充美。做一名自安者,悄悄抚平自我生命的伤痕,让生命充悦。做一名自洁者,时时清除自我生命的淤积,让生命充盈。小编再次感谢大家对我们的支持!




