标签:js、map、封装
/* * 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的元素 * keys() 获取Map中所有key的数组(array) * values() 获取Map中所有value的数组(array) * */ 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) { if (this.containsKey(_key) == true) { if (this.containsValue(_value)) { if (this.remove(_key) == true) { this.elements.push({ key: _key, value: _value }); } } else { this.elements.push({ key: _key, value: _value }); } } else { this.elements.push({ key: _key, value: _value }); } }, //删除指定key的元素,成功返回true,失败返回false this.remove = function (_key) { var bln = false; try { for (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 (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 (i = 0; i < this.elements.length; i++) { if (this.elements[i].key == _key) { bln = true; } } } catch (e) { bln = false; } return bln; }, //判断Map中是否含有指定value的元素 this.containsValue = function (_value) { var bln = false; try { for (i = 0; i < this.elements.length; i++) { if (this.elements[i].value == _value) { bln = true; } } } catch (e) { bln = false; } return bln; }, //获取Map中所有key的数组(array) this.keys = function () { var arr = new Array(); for (i = 0; i < this.elements.length; i++) { arr.push(this.elements[i].key); } return arr; }, //获取Map中所有value的数组(array) this.values = function () { var arr = new Array(); for (i = 0; i < this.elements.length; i++) { arr.push(this.elements[i].value); } return arr; }; }
本文出自 “IT技术产业与生活” 博客,请务必保留此出处http://msuccessful.blog.51cto.com/10175231/1672394
标签:js、map、封装
原文地址:http://msuccessful.blog.51cto.com/10175231/1672394