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 28 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
Apr 15 Javascript
window.open的页面如何刷新(父页面)上层页面
Dec 28 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
使用jQuery实现验证上传图片的格式与大小
Dec 03 Javascript
JavaScript中的object转换成number或string规则介绍
Dec 31 Javascript
jQuery动画效果实现图片无缝连续滚动
Jan 12 Javascript
深入剖析javascript中的exec与match方法
May 18 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
浅析Node.js:DNS模块的使用
Nov 23 Javascript
JavaScript实现动态添加Form表单元素的方法示例
Aug 14 Javascript
vue3 自定义图片放大器效果的示例代码
Jul 23 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
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
学习jquery之一
2007/04/27 Javascript
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
jquery实现点击向下展开菜单项(伸缩导航)效果
2015/08/22 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
python绘制立方体的方法
2018/07/02 Python
详解用pyecharts Geo实现动态数据热力图城市找不到问题解决
2019/06/26 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
Django的models中on_delete参数详解
2019/07/16 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
python collections模块的使用
2020/10/16 Python
澳大利亚最大的女装零售商:Millers
2017/09/10 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
软件工程专业推荐信
2013/10/28 职场文书
创业计划书如何吸引他人眼球
2014/01/10 职场文书
关于运动会的稿件
2014/02/02 职场文书
秋季运动会广播稿
2014/02/22 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
大学校务公开实施方案
2014/03/31 职场文书
《蜗牛的奖杯》教后反思
2014/04/24 职场文书
国旗下讲话演讲稿
2014/05/08 职场文书
董事长助理工作职责范本
2014/07/01 职场文书
中国在我心中演讲稿
2014/09/13 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
读《庄子》有感:美而不自知
2019/11/06 职场文书
Redis实现订单自动过期功能的示例代码
2021/05/08 Redis
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python