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 相关文章推荐
再谈ie和firefox下的document.all属性
Oct 21 Javascript
js 刷新页面的代码小结 推荐
Apr 02 Javascript
Jquery中对数组的操作代码
Aug 12 Javascript
ext前台接收action传过来的json数据示例
Jun 17 Javascript
JQuery radio(单选按钮)操作方法汇总
Apr 15 Javascript
jquery实现滑动特效代码
Aug 10 Javascript
基于javascript实现按圆形排列DIV元素(二)
Dec 02 Javascript
js编写三级联动简单案例
Dec 21 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
微信小程序实现美团菜单
Jun 06 Javascript
layui弹出框Tab选项卡的示例代码
Sep 04 Javascript
JavaScript的console命令使用实例
Dec 03 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
长波知识介绍
2021/03/01 无线电
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
如何去掉文章里的 html 语法
2006/10/09 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
使用YII2框架实现微信公众号中表单提交功能
2017/09/04 PHP
PHP实现简单日历类编写
2020/08/28 PHP
jQuery新闻滚动插件 jquery.roller.js
2011/06/27 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
浅谈JavaScript实现面向对象中的类
2014/12/09 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
基于Node.js实现nodemailer邮件发送
2016/01/26 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
扩展Bootstrap Tooltip插件使其可交互的方法
2016/11/07 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
基于Python的文件类型和字符串详解
2017/12/21 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python——全排列数的生成方式
2020/02/26 Python
jupyter notebook实现显示行号
2020/04/13 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
英国奢侈品网站:MatchesFashion
2016/12/16 全球购物
北京SQL新华信咨询
2016/09/30 面试题
音乐专业应届生教师求职信
2013/11/04 职场文书
幼儿园大班毕业教师寄语
2014/04/03 职场文书
社区两委对照检查材料
2014/08/23 职场文书
2014年安置帮教工作总结
2014/12/11 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
2016七夕情人节感言
2015/12/09 职场文书
2016年党课培训学习心得体会
2016/01/07 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android