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
                    });
                }
            },
            // 向Map中增加元素(key, value)
            this.set = 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的元素,成功返回true,失败返回false
            this.delete = 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;
                }
            },
            // set指定key的元素值value
            this.setValue = function(_key, _value) {
                var bln = false;
                try {
                    for (i = 0; i < this.elements.length; i++) {
                        if (this.elements[i].key == _key) {
                            this.elements[i].value = _value;
                            return true;
                        }
                    }
                } catch (e) {
                    bln = false;
                }
                return bln;
            },
            // 获取指定索引的元素(使用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中是否含有指定key的元素
            this.has = 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;
            };
        /**
         * map遍历数组
         * @param callback [function] 回调函数;
         * @param context [object] 上下文;
         */
        this.forEach = function forEach(callback, context) {
            context = context || window;
            //IE6-8下自己编写回调函数执行的逻辑
            var newAry = new Array();
            for (var i = 0; i < this.elements.length; i++) {
                if (typeof callback === 'function') {
                    var val = callback.call(context, this.elements[i].value, this.elements[i].key, this.elements);
                    newAry.push(this.elements[i].value);
                }
            }
            return newAry;
        }
    }

最新文章

  1. 微软KinectV2深度传感器在Ubuntu上的配置和使用
  2. Google Analytics 链接点击次数记录
  3. jsp页面中引用其他页面的方法
  4. [转]B树、B-树、B+树、B*树
  5. &lt;转载&gt; OpenGL Projection Matrix
  6. 作业一:创建个人技术博客、自我介绍、简单的C程序
  7. ecslipe cdt lib link
  8. Redis做消息队列文章两篇
  9. 上次遗留下来的XMLUtil的问题
  10. map的基本操作函数及含义
  11. Android 每隔3s更新一次title
  12. android 从服务器上获取APK并下载安装
  13. 安装ipvsadm报错
  14. postman定义公共函数
  15. python数据可视化(matplotlib)
  16. [HNOI 2015]开店
  17. jdk8中tomcat修改配置PermSize为MetaspaceSize
  18. nohup 写法
  19. 获取当前div中的文本(只获取当前div的, 子元素不要, 基于layui)
  20. DB安装

热门文章

  1. stack-铁轨问题
  2. scikit-learn笔记之初次接触
  3. 通过elasticsearch对日志进行搜索热词统计
  4. 剑指offer之 从尾到头打印链表
  5. Hibernate错误及解决办法
  6. ES索引瘦身 压缩——_source _all 均disable filed store为no,引入第三方DB存储原始数据,去掉pos倒排和doc_values,强制定期merge segments,将所有fileds合并为一个field big string
  7. mysql基本语句1
  8. ashx页面缓存
  9. Javascript-- jQuery样式篇(二)
  10. 关于COM组件调用