JAVASCRIPT使用map的put问题处理
2012-02-24 13:11
309 查看
网上找的javascript使用map的代码挺好用的,就是有一点小问题,put的时候并不是类似java的map可以保存唯一的key,所以做了小修改。
以下代码是完整的,主要修改了put的处理,增加可修改值的功能,及containsKey, containsValue的for循环增加break;以优化性能。
以下代码是完整的,主要修改了put的处理,增加可修改值的功能,及containsKey, containsValue的for循环增加break;以优化性能。
/** * javascript map */ function Map() { this.elements = new Array(); //获取MAP元素个数 this.size = function() { return this.elements.length; } //判断MAP是否为空 this.isEmpty = function() { return (this.elements.length < 1); } //删除MAP所有元素 this.clear = function() { this.elements = new Array(); } //向MAP中增加元素(key, value) this.put = function(_key, _value) { var isContainKey=false; for (var i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { isContainKey=true; this.elements[i].value=_value; break; } } if(isContainKey==false){ this.elements.push({ key : _key, value : _value }); } } //删除指定KEY的元素,成功返回True,失败返回False this.remove = function(_key) { var bln = false; try { for (var i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { this.elements.splice(i, 1); return true; } } } catch (e) { bln = false; } return bln; } //获取指定KEY的元素值VALUE,失败返回NULL this.get = function(_key) { try { for (var i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { return this.elements[i].value; } } } catch (e) { return null; } } //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL this.element = function(_index) { if (_index < 0 || _index >= this.elements.length) { return null; } return this.elements[_index]; } //判断MAP中是否含有指定KEY的元素 this.containsKey = function(_key) { var bln = false; try { for (var i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { bln = true; break; } } } catch (e) { bln = false; } return bln; } //判断MAP中是否含有指定VALUE的元素 this.containsValue = function(_value) { var bln = false; try { for (var i = 0; i < this.elements.length; i++) { if (this.elements[i].value == _value) { bln = true; break; } } } catch (e) { bln = false; } return bln; } //获取MAP中所有VALUE的数组(ARRAY) this.values = function() { var arr = new Array(); for (var i = 0; i < this.elements.length; i++) { arr.push(this.elements[i].value); } return arr; } //获取MAP中所有KEY的数组(ARRAY) this.keys = function() { var arr = new Array(); for (var i = 0; i < this.elements.length; i++) { arr.push(this.elements[i].key); } return arr; } }
相关文章推荐
- 如何处理“使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错”的问题
- 问题03.如果有多个集合的迭代处理情况【使用MAP】
- Gson使用中遇到的Date格式问题。日期格式处理
- 使用updatePanel控件出现sys...未定义问题的处理方法
- 使用dom4j工具包实现对xml文件的增删改查和乱码问题的处理
- 关于QT中evaluateJavaScript()函数返回值的处理问题
- 使用BizTalk Server常见问题处理
- swfupload使用中遇到问题处理方法
- 使用__attribute__处理对齐问题
- 在使用javascript-state-machine状态机调用异步钩子函数时,卡死问题及抛出异常问题
- 在jsff中使用javascript问题
- 使用Javascript解决左右高度自适应的问题
- javascript使用注意的问题
- 修改IE不兼容MAP()的问题,自定义实现JavaScript的Map对象
- 使用Facebook方法处理复杂问题
- [STL] __gnu_cxx::hash_map使用中的一些问题
- Web应用开发中的几个问题——使用javascript开发需知
- javascript常见小问题处理
- 基于Android中Webview使用自定义的javascript进行回调的问题详解
- window.showModalDialog浏览器不支持后使用window.open代码问题处理方法