js实现HashTable(哈希表)的实例分析


Posted in Javascript onNovember 21, 2016

一、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"));

 

以上是本文的全部内容,希望对大家有所帮助!

Javascript 相关文章推荐
使用Javascript和DOM Interfaces来处理HTML
Oct 09 Javascript
javascript new一个对象的实质
Jan 07 Javascript
jQuery之网页换肤实现代码
Apr 30 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
node.js中的fs.futimes方法使用说明
Dec 17 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
Jun 11 Javascript
js限制文本框只能输入中文的方法
Aug 11 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
Aug 31 Javascript
bootstrap的工具提示实例代码
May 17 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
Jul 19 Javascript
jquery写出PC端轮播图实例
Jan 26 jQuery
利用JS实现一个同Excel表现的智能填充算法
Aug 13 Javascript
详解js中call与apply关键字的作用
Nov 21 #Javascript
微信小程序购物商城系统开发系列-目录结构介绍
Nov 21 #Javascript
微信小程序购物商城系统开发系列-工具篇的介绍
Nov 21 #Javascript
全面解析node 表单的图片上传
Nov 21 #Javascript
利用fecha进行JS日期处理
Nov 21 #Javascript
Bootstrap Modal遮罩弹出层(完整版)
Nov 21 #Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 #Javascript
You might like
NT IIS下用ODBC连接数据库
2006/10/09 PHP
PHP 数组实例说明
2008/08/18 PHP
php将会员数据导入到ucenter的代码
2010/07/18 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
使用PHP把HTML生成PDF文件的几个开源项目介绍
2014/11/17 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
求得div 下 img的src地址的js代码
2007/02/28 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
python中反射用法实例
2015/03/27 Python
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
python计算两个地址之间的距离方法
2018/06/09 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Python调用JavaScript代码的方法
2020/10/27 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
五好关工委申报材料
2014/05/31 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
思想纪律作风整顿剖析材料
2014/10/11 职场文书
营销与策划实训报告
2014/11/05 职场文书
基层党建工作简报
2015/07/21 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers