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 相关文章推荐
jQuery 表格工具集
Apr 25 Javascript
JavaScript和CSS通过expression实现Table居中显示
Jun 28 Javascript
用jquery中插件dialog实现弹框效果实例代码
Nov 15 Javascript
JavaScript实现的in_array函数
Aug 27 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
Nov 15 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
May 19 Javascript
jQuery中JSONP的两种实现方式详解
Sep 26 Javascript
AngularJS中transclude用法详解
Nov 03 Javascript
BootStrap整体框架之基础布局组件
Dec 15 Javascript
教你一步步用jQyery实现轮播器
Dec 18 Javascript
讲解vue-router之什么是嵌套路由
May 28 Javascript
vue实现选中效果
Oct 07 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
星际争霸 Starcraft 秘技补丁
2020/03/14 星际争霸
php4的彩蛋
2006/10/09 PHP
ThinkPHP框架实现定时执行任务的两种方法分析
2018/09/04 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
50款非常棒的 jQuery 插件分享
2012/03/29 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
JavaScript面向对象编程入门教程
2014/04/16 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
Bootstrap select下拉联动(jQuery cxselect)
2017/01/04 Javascript
JS验证码实现代码
2017/09/14 Javascript
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
JavaScript模拟实现自由落体效果
2018/08/28 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
使用requests库制作Python爬虫
2018/03/25 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
2018/07/26 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
django 类视图的使用方法详解
2019/07/24 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
应届毕业生求职信范文分享
2013/12/26 职场文书
车辆工程专业求职信
2014/04/28 职场文书
2014年度培训工作总结
2014/11/27 职场文书
股权转让协议范本
2014/12/07 职场文书
廉洁自律证明
2015/06/24 职场文书
java实现自定义时钟并实现走时功能
2022/06/21 Java/Android