js封裝map

js封裝map
         在大三的時(shí)候,做電子商務(wù)網(wǎng)站的時(shí)候,前端頁面打包過來的數(shù)據(jù)都是json格式,為了更好的體驗(yàn),有的時(shí)候我們需要封裝url,需要我點(diǎn)擊回退的時(shí)候,url地址欄目不變,其實(shí)我們在Android或者java里面通常也會(huì)使用去訪問其他網(wǎng)絡(luò),或者去訪問做第三方接口的時(shí)候,我們都需要對url按照一定的規(guī)范去封裝好,這個(gè)時(shí)候必不可少的一個(gè)數(shù)據(jù)結(jié)構(gòu)就是map,java里面的map用紅黑二叉樹實(shí)現(xiàn),但是javascript需要自己去實(shí)現(xiàn),下面就是一個(gè)簡單的對map封裝。
 

    /**  
     *
     */
    function Map() {
     
        this.elements = new Array();
     
        this.size = function() {
            return this.elements.length;
        }
     
        this.isEmpty = function() {
            return (this.elements.length < 1);
        }
        this.clear = function() {
            this.elements = new Array();
        }
        this.put = function(_key, _value) {
            this.elements.push( {
                key : _key,
                value : _value
            });
        }
        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;
        }
        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;
            }
        }
        this.element = function(_index) {
            if (_index < 0 || _index >= this.elements.length) {
                return null;
            }
            return this.elements[_index];
        }
     
        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;
        }
        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;
        }
        this.values = function() {
            var arr = new Array();
            for (i = 0; i < this.elements.length; i++) {
                arr.push(this.elements[i].value);
            }
            return arr;
        }
        this.keys = function() {
            var arr = new Array();
            for (i = 0; i < this.elements.length; i++) {
                arr.push(this.elements[i].key);
            }
            return arr;
        }
    }


我們使用的時(shí)候和java差不多
 

    Map map=new Map();
    map.put("a",“student”);
    var value=map.get("a");
    console.log(value);

 
我們可以從控制臺(tái)打印出  student
 




作者:chen.yu
深信服三年半工作經(jīng)驗(yàn),目前就職游戲廠商,希望能和大家交流和學(xué)習(xí),
微信公眾號:編程入門到禿頭 或掃描下面二維碼
零基礎(chǔ)入門進(jìn)階人工智能(鏈接)