zoukankan      html  css  js  c++  java
  • 用html自制map集合

    懂java的人都知道map集合,是一个非常好用的集合类,它以键值对方式存储,和我们js的json记为相似,但是json添加,查找极为不便。那还不如自己用js制定一个json

      function Map() {
                    /** 存放键的数组(遍历用到) */
                    this.keys = new Array()
                    /** 存放数据 */
                    this.data = new Object();
    
                    /**
                     * 放入一个键值对
                     * @param {String} key
                     * @param {Object} value
                     */
                    this.put = function(key, value) {
                        if(this.data[key] == null){
                            this.keys.push(key);
                        }
                        this.data[key] = value;
                    };
    
                    /**
                     * 获取某键对应的值
                     * @param {String} key
                     * @return {Object} value
                     */
                    this.get = function(key) {
                        return this.data[key];
                    };
    
                    /**
                     * 删除一个键值对
                     * @param {String} key
                     */
                    this.remove = function(key) {
                        this.keys.remove(key);
                        this.data[key] = null;
                    };
    
                    /**
                     * 遍历Map,执行处理函数
                     *
                     * @param {Function} 回调函数 function(key,value,index){..}
                     */
                    this.each = function(fn){
                        if(typeof fn != 'function'){
                            return;
                        }
                        var len = this.keys.length;
                        for(var i=0;i<len;i++){
                            var k = this.keys[i];
                            fn(k,this.data[k],i);
                        }
                    };
    
                    /**
                     * 获取键值数组(类似Java的entrySet())
                     * @return 键值对象{key,value}的数组
                     */
                    this.entrys = function() {
                        var len = this.keys.length;
                        var entrys = new Array(len);
                        for (var i = 0; i < len; i++) {
                            entrys[i] = {
                                key : this.keys[i],
                                value : this.data[i]
                            };
                        }
                        return entrys;
                    };
    
                    /**
                     * 判断Map是否为空
                     */
                    this.isEmpty = function() {
                        return this.keys.length == 0;
                    };
    
                    /**
                     * 获取键值对数量
                     */
                    this.size = function(){
                        return this.keys.length;
                    };
    
                    /**
                     * 重写toString
                     */
                    this.toString = function(){
                        var s = "{";
                        for(var i=0;i<this.keys.length;i++,s+=','){
                            var k = this.keys[i];
                            s += k+"="+this.data[k];
                        }
                        s+="}";
                        return s;
                    };
                }

      使用:

     var map;
                $(function(){
                    map = new Map();
                     map.put("redirecturl",redire);
                //    map.put("appId",app);
    }
  • 相关阅读:
    Oslec Echo Canceller:开源回声消除方案
    引用:SpeechLinks
    打印论文分类
    语音算法方案公司
    推送 push
    Android完美多语言应用,不重启应用,不改变系统语言
    定时任务quartz
    在android平台解决找不到sun.misc.BASE64Enocder的问题
    IOS背景view隐藏键盘
    为ExpandableListView自定义Item
  • 原文地址:https://www.cnblogs.com/sanhuan/p/4610864.html
Copyright © 2011-2022 走看看