我是靠谱客的博主 粗犷哈密瓜,最近开发中收集的这篇文章主要介绍js实现HashTable(哈希表)的实例分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、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(哈希表)的实例分析的全部内容,希望文章能够帮你解决js实现HashTable(哈希表)的实例分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(119)

评论列表共有 0 条评论

立即
投稿
返回
顶部