JS hashMap实例详解
来源: 阅读:978 次 日期:2016-06-22 16:52:49
温馨提示: 小编为您整理了“JS hashMap实例详解”,方便广大网友查阅!

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实例详解的相关知识,希望对大家有所帮助!

更多信息请查看网络编程
手机网站地址:JS hashMap实例详解
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map