Javascript下实现MAP

Java中大家会经常用到MAP,但是在Javascript中要如何实现呢,下面给大家贴段从网上搜集过来的代码,写得还是不错的。

    /**
    * Make a map like java.
    * You can use this map like this :
    * var myMap = new Map();
    * myMap.put("key","value");
    * var key = myMap.get("key");
    */
    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.elements.length = 0;
        }   

        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;
        }
    }