js封装map

js封装map
         在大三的时候,做电子商务网站的时候,前端页面打包过来的数据都是json格式,为了更好的体验,有的时候我们需要封装url,需要我点击回退的时候,url地址栏目不变,其实我们在Android或者java里面通常也会使用去访问其他网络,或者去访问做第三方接口的时候,我们都需要对url按照一定的规范去封装好,这个时候必不可少的一个数据结构就是map,java里面的map用红黑二叉树实现,但是javascript需要自己去实现,下面就是一个简单的对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;
        }
    }


我们使用的时候和java差不多
 

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

 
我们可以从控制台打印出  student
 




作者:chen.yu
深信服三年半工作经验,目前就职游戏厂商,希望能和大家交流和学习,
微信公众号:编程入门到秃头 或扫描下面二维码
零基础入门进阶人工智能(链接)