JavaScript实现键值对数组,类似Java语言中的Map
来源:互联网 发布:linux和unix的区别 编辑:程序博客网 时间:2024/05/22 15:41
闲来无事,做个JavaScript练习题,结果因为Java语言使用的时间久了,就像强迫使用Java的逻辑去写JavaScript代码。然而,JavaScript却没有HashMap,瞬间感觉Java不愧是高级语言。为了成全自己的强迫症,简单实现个Map用着嗨一下。
废话就不多说了,贴出来我的代码,大家给指导指导。
/** * 自定义键值对字典对象 * @constructor */ function Dictionary() { /** * 键值对的键列表,存储键元素 * @type {Array} */ var keys = new Array(); /** * 键值对的值列表,存储值元素 * @type {Array} */ var values = new Array(); /** * 为键值对添加一个元素 * @param key 元素键(具有唯一性) * @param value 元素的值 */ this.put = function (key, value) { if (contains(key)) { // 已存在键为key的元素 var index = this.indexOfKey(key); values[index] = value; // 为对应的值重新赋值 } else { // 不存在键为key的元素,需要为键值对添加新的元素 keys.push(key); // 添加key到键列表的末尾 values.push(value); // 添加value到值列表的末尾 } }; /** * 获取key对应的value * @param key * @returns {*} 返回value值,查不到返回null */ this.get = function (key) { if (contains(key)) { // 存在键为key的元素 var index = this.indexOfKey(key); return values[index]; // 返回key对应的value } else { return null; } }; /** * 获取key数组 * @returns {Array} */ this.getKeyArray = function () { return keys; }; /** * 获取vakue数组 * @returns {Array} */ this.getValueArray = function () { return values; }; /** * 返回键值对的长度 * @returns {Number} */ this.size = function () { return keys.length; }; /** * 检查是否包含某个key的元素 * @param key * @returns {boolean} 包含返回true */ this.contains = function (key) { return (keys.indexOf(key) > -1); }; /** * 获取key列表对应元素的下表 * @param key key * @returns {number} 下标位置,查不到返回-1 */ this.indexOfKey = function (key) { return keys.indexOf(key); }; }
以上,本人技术 有限,忘大神路过给指点一二。谢谢!
0 0
- JavaScript实现键值对数组,类似Java语言中的Map
- C#__Dictionary类 __类似java Map 键值对
- JavaScript中用数组实现键值对
- JavaScript中实现类似Java中的Map对象
- javascript 实现键值对。
- JavaScript 实现类似Java Map对象
- 在JavaScript中实现类似Java中List<Map>类型的数组
- javascript中模拟实现java语言中的map
- Map中的键值对进行遍历
- 遍历map集合中的键值对
- C实现键值对(Map功能)
- Map读取键值对,Java遍历Map的两种实现方法
- Map读取键值对,Java遍历Map的两种实现方法
- java 键值对 Map<String, String>
- java中的map其实就是以键值对形式的存放数据的容器,其常用的实现类主要是哈希map
- java中的键值对和 C#中的键值对
- JavaScript中实现键值对的方法
- day07--Map键值对
- git中ssh与https究竟有何不同
- 关于sed命令去除文本当中每个字段前后空格及tab效率低下的解决办法
- J-Link 与 SWD
- Stream API
- sendfile函数
- JavaScript实现键值对数组,类似Java语言中的Map
- Python 字符串内置方法大全
- ffmpeg最全的命令参数
- Android屏幕直播方案
- MyEclipse 2014 添加SVN 插件
- ubuntu安装搜狗输入法
- ALSA声卡驱动中的DAPM详解
- ubuntu16.04安装后干的事
- 决策树