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 相关文章推荐
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
Apr 29 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
Jan 06 Javascript
JS上传前预览图片实例
Mar 25 Javascript
javascript阻止scroll事件多次执行的思路及实现
Nov 08 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
jQuery中prevUntil()方法用法实例
Jan 08 Javascript
javascript与jquery中的this关键字用法实例分析
Dec 24 Javascript
微信支付 JS API支付接口详解
Jul 11 Javascript
详解vue渲染函数render的使用
Dec 12 Javascript
vue 监听屏幕高度的实例
Sep 05 Javascript
layui 对弹窗 form表单赋值的实现方法
Sep 04 Javascript
Layui数据表格之单元格编辑方式
Oct 26 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在文件指定行中写入代码的方法
2012/05/23 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
php实现多城市切换特效
2015/08/09 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
基于jquery实现的定时显示与隐藏div广告的实现代码
2013/08/22 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
js实现常见的工具条效果
2017/03/02 Javascript
解决vue页面DOM操作不生效的问题
2018/03/17 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
vue+elementUi图片上传组件使用详解
2019/08/20 Javascript
python实现的一个火车票转让信息采集器
2014/07/09 Python
解读Python中degrees()方法的使用
2015/05/18 Python
python随机取list中的元素方法
2018/04/08 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
浅析几个CSS3常用功能的写法
2014/06/05 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
抗洪救灾先进集体事迹材料
2014/05/26 职场文书
幼师求职自荐信
2014/05/31 职场文书
关于保护环境的标语
2014/06/09 职场文书
国家助学金受助感言
2015/08/01 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
讨论nginx location 顺序问题
2022/05/30 Servers