js实现HashTable(哈希表)的实例分析
更新时间:2016年11月21日 15:52:59 作者:逆心
本文详细介绍javascript哈希表的实例分析及用法。下面就跟小编一起来学习下吧
一、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 removeAttribute()方法实现删除元素的某个属性
这篇文章主要介绍了JS removeAttribute()方法实现删除元素的某个属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-01-01利用JS解决ie6不支持max-width,max-height问题的方法
本篇文章主要介绍了利用JS解决ie6不支持max-width,max-height问题的方法。需要的朋友可以过来参考下,希望对大家有所帮助2014-01-01
最新评论