JS hashMap实例详解


Posted in Javascript onMay 26, 2016

Hashmap是一种非常常用的、应用广泛的数据类型。本文通过实例代码给大家介绍js hashMap的相关知识,具体代码内容如下所示:

/**
* MAP对象,实现MAP功能 
* 
* 接口: 
* size() 获取MAP元素个数 
* isEmpty() 判断MAP是否为空 
* clear() 删除MAP所有元素 
* put(key, value) 向MAP中增加元素(key, value) 
* remove(key) 删除指定KEY的元素,成功返回True,失败返回False 
* get(key) 获取指定KEY的元素值VALUE,失败返回NULL 
* element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL 
* containsKey(key) 判断MAP中是否含有指定KEY的元素 
* containsValue(value) 判断MAP中是否含有指定VALUE的元素 
* values() 获取MAP中所有VALUE的数组(ARRAY) 
* keys() 获取MAP中所有KEY的数组(ARRAY) 
* 
* 例子: 
* var map = new Map(); 
* 
* map.put("key", "value"); 
* var val = map.get("key") 
* …… 
* 
*/
function hashmap() {
/**
* 存放数据
*/
this.data = new Object();
/**
* 放入一个键值对
* @param {String} key
* @param {Object} value
*/
this.put = function(key, value) 
{
this.data[key] = value;
};
/**
* 获取某键对应的值
* @param {String} key
* @return {Object} value
*/
this.get = function(key) 
{
return this.containsKey(key)?this.data[key]:null; 
};
/**
* 删除一个键值对
* @param {String} key
*/
this.remove = function(key) 
{
delete this.data[key];
};
/**
* 遍历Map,执行处理函数
* 
* @param {Function} 回调函数 function(key,value,index){..}
*/
this.each = function(fn){
if(typeof fn != 'function')
{
return;
}
var len = this.data.length;
for(var i=;i<len;i++)
{
var k = this.data[i];
fn(k,this.data[k],i);
}
};
/**
* 获取键值数组(类似Java的entrySet())
* @return 键值对象{key,value}的数组
*/
this.entrys = function() 
{
var len = this.data.length;
var entrys = new Array(len);
for (var i = ; i < len; i++) {
entrys[i] = {
key : i,
value : this.data[i]
};
}
return entrys;
};
/**
* 判断Map是否为空
*/
this.isEmpty = function() 
{
return this.data.length == ;
};
/**
* 获取键值对数量
*/
this.size = function()
{
return this.data.length;
};
/**
* 重写toString ,装成JSON格式
*/
this.toString = function()
{
var s = "[";
for(var i=;i<this.data.length;i++,s+=','){
var k = this.data[i];
s += "{'id':'" + k+"','value':'"+this.data[k]+"'}";
}
s=s.substring(, s.length-);
if(s!=""){
s+="]";
}
return s;
};
/**
* 输出Value的值
*/
this.values = function (){
var _values= new Array(); 
for(var key in this.data)
{ 
_values.push(this.data[key]); 
} 
return _values; 
};
/**
* 获取keys
*/
this.keySet = function (){
var _keys = new Array(); 
for(var key in this.data)
{ 
_keys.push(key); 
} 
return _keys; 
};
/**
* 判断MAP中是否含有指定KEY的元素 
*/
this.containsKey = function(_key)
{ 
return (_key in this.data); 
}; 
/** 
* 清空Map 
*/ 
this.clear = function(){ 
this.data.length = ;
this.data = new Object();
}; 
}

以上所述是小编给大家介绍的js hashMap实例详解的相关知识,希望对大家有所帮助!

Javascript 相关文章推荐
网页编辑器ckeditor和ckfinder配置步骤分享
May 24 Javascript
javascript相等运算符与等同运算符详细介绍
Nov 09 Javascript
jQuery弹出层插件Lightbox_me使用指南
Apr 21 Javascript
js实现点击每个li节点,都弹出其文本值及修改
Dec 15 Javascript
jQuery用noConflict代替$的实现方法
Apr 12 jQuery
ActiveX控件的使用-js实现打印超市小票功能代码详解
Nov 22 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 Javascript
JS实现的贪吃蛇游戏完整实例
Jan 18 Javascript
最简单的vue消息提示全局组件的方法
Jun 16 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
微信小程序实现轨迹回放的示例代码
Dec 13 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 Javascript
jQuery验证插件validate使用方法详解
Sep 13 #Javascript
动态加载js、css的实例代码
May 26 #Javascript
基于JS实现textarea中获取动态剩余字数的方法
May 25 #Javascript
js将json格式的对象拼接成复杂的url参数方法
May 25 #Javascript
使用jquery获取url以及jquery获取url参数的实现方法
May 25 #Javascript
jquery分隔Url的param方法(推荐)
May 25 #Javascript
sso跨域写cookie的一段js脚本(推荐)
May 25 #Javascript
You might like
解析PHP缓存函数的使用说明
2013/05/10 PHP
PHP异常处理浅析
2015/05/12 PHP
PHP利用递归函数实现无限级分类的方法
2019/03/22 PHP
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
jquery ajax 如何向jsp提交表单数据
2015/08/23 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
[06:48]DOTA2-DPC中国联赛2月26日Recap集锦
2021/03/11 DOTA
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
python实现简易通讯录修改版
2018/03/13 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
浅谈python常用程序算法
2019/03/22 Python
python程序 创建多线程过程详解
2019/09/23 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
openCV提取图像中的矩形区域
2020/07/21 Python
scrapy-splash简单使用详解
2021/02/21 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
影视艺术学院毕业生自荐信
2013/11/13 职场文书
创业计划书六个要素
2013/12/26 职场文书
安全生产先进个人总结
2015/02/15 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
行政申诉状范文
2015/05/20 职场文书
历史博物馆观后感
2015/06/05 职场文书
婚宴新郎致辞
2015/07/28 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript