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.load的方法可以一直load下去
Mar 28 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
js对文章内容进行分页示例代码
Mar 05 Javascript
一个支付页面DEMO附截图
Jul 22 Javascript
javascript实现单击和双击并存的方法
Dec 13 Javascript
JavaScript操作选择对象的简单实例
May 16 Javascript
jQuery实现的简单悬浮层功能完整实例
Jan 23 Javascript
基于JS实现仿百度百家主页的轮播图效果
Mar 06 Javascript
vscode中vue-cli项目es-lint的配置方法
Jul 30 Javascript
Node.js 的 GC 机制详解
Jun 03 Javascript
对vuex中getters计算过滤操作详解
Nov 06 Javascript
JQuery发送ajax请求时中文乱码问题解决
Nov 14 jQuery
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/06/07 PHP
php二维数组转成字符串示例
2014/02/17 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
javascript中的作用域和闭包详解
2016/01/13 Javascript
JCrop+ajaxUpload 图像切割上传的实例代码
2016/07/20 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
Angular中使用better-scroll插件的方法
2018/03/27 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
python使用心得之获得github代码库列表
2014/06/25 Python
Python入门篇之数字
2014/10/20 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
利用Python实现Windows定时关机功能
2017/03/21 Python
python算法表示概念扫盲教程
2017/04/13 Python
Pycharm学习教程(4) Python解释器的相关配置
2017/05/03 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
Python多线程多进程实例对比解析
2020/03/12 Python
Django 解决由save方法引发的错误
2020/05/21 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
ktv总经理岗位职责
2014/02/17 职场文书
实习报告评语
2014/04/26 职场文书
查摆问题整改措施
2014/10/24 职场文书
入团介绍人意见范文
2015/06/04 职场文书