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 相关文章推荐
javascript中获取下个月一号,是星期几
Jun 01 Javascript
javascript object array方法使用详解
Dec 03 Javascript
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 Javascript
Jquery实现显示和隐藏的4种简单方式
Aug 28 Javascript
Ajax同步与异步传输的示例代码
Nov 21 Javascript
浅析javascript中的DOM
Mar 01 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
angularjs ocLazyLoad分步加载js文件实例
Jan 17 Javascript
js中document.referrer实现移动端返回上一页
Feb 22 Javascript
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
JavaScript实现拖拽功能
Feb 11 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 email邮箱正则
2008/10/08 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
php判断邮箱地址是否存在的方法
2016/02/13 PHP
原生php实现excel文件读写的方法分析
2018/04/25 PHP
PHP用swoole+websocket和redis实现web一对一聊天
2019/11/05 PHP
可恶的ie8提示缺少id未定义
2014/03/20 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
2014/07/27 Javascript
javascript获取select值的方法分析
2015/07/02 Javascript
批量下载对路网图片并生成html的实现方法
2016/06/07 Javascript
js 获取经纬度的实现方法
2016/06/20 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
详解基于Angular4+ server render(服务端渲染)开发教程
2017/08/28 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
Layui实现数据表格默认全部显示(不要分页)
2019/10/26 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
python登录豆瓣并发帖的方法
2015/07/08 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
行政助理的职责
2013/11/14 职场文书
优秀社区干部事迹材料
2014/02/03 职场文书
护士长竞聘书
2014/03/31 职场文书
青年志愿者活动总结
2014/04/26 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
九寨沟导游词
2015/02/02 职场文书
保外就医申请书范文
2015/08/06 职场文书
Python os和os.path模块详情
2022/04/02 Python