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下:float属性会影响offsetTop的取值
Dec 22 Javascript
js 颜色选择器(兼容firefox)
Mar 05 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
Dec 16 Javascript
一个Action如何调用两个不同的方法
May 22 Javascript
Bootstrap每天必学之表格
Nov 23 Javascript
原生js仿jquery实现对Ajax的封装
Oct 04 Javascript
Validform表单验证总结篇
Oct 31 Javascript
Vue-cli proxyTable 解决开发环境的跨域问题详解
May 18 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
Dec 01 Javascript
浅谈webpack SplitChunksPlugin实用指南
Sep 17 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
Aug 03 Javascript
Vue router配置与使用分析讲解
Dec 24 Vue.js
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和ACCESS写聊天室(九)
2006/10/09 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP会话控制实例分析
2016/12/24 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
IE DOM实现存在的部分问题及解决方法
2009/07/25 Javascript
跟着Jquery API学Jquery之一 选择器
2010/04/07 Javascript
关于juqery radio写法的兼容性问题(新老版本jquery)
2010/06/14 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
在JavaScript中如何解决用execCommand(
2015/10/19 Javascript
新手学习前端之js模仿淘宝主页网站
2016/10/31 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
简单谈谈原生js的math对象
2017/06/27 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
从零学python系列之从文件读取和保存数据
2014/05/23 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
2019/08/07 Python
python nmap实现端口扫描器教程
2020/05/28 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
什么造成了Java里面的异常
2016/04/24 面试题
结构和类有什么异同
2012/07/16 面试题
医学生临床实习自我评价
2014/03/07 职场文书
《大江保卫战》教学反思
2014/04/11 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
消防宣传口号
2014/06/16 职场文书
身边的榜样活动方案
2014/08/20 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2014年路政工作总结
2014/12/10 职场文书
Oracle以逗号分隔的字符串拆分为多行数据实例详解
2021/07/16 Oracle
Windows11里微软已经将驱动程序安装位置A盘删除
2021/11/21 数码科技