JavaScript实现Map功能

JavaScript中没有类似Java中的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) {
        if (!this.containsKey(_key)) {
            this.elements.push({
                key:_key,value:_value
            });
        } else {
            for (var i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key === _key) {
                    this.elements[i].value = _value;
                }
            }
        }
    };
    this.remove=function(_key) {
        for (var i = 0; i < this.elements.length; i++) {
            if (this.elements[i].key === _key) {
                this.elements.splice(i, 1);
                return;
            }
        }
    };
    this.get=function(_key) {
        try {
            for (var i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key === _key) {
                    return this.elements[i].value;
                }
            }
        } catch(e) {
            return null;
        }
        return null;
    };
    this.containsKey=function(_key) {
        try {
            for (var i = 0; i < this.elements.length; i++) {
                if (this.elements[i].key===_key) {
                    return true;
                }
            }
        } catch (e) {
            return false;
        }
        return false;
    };
    this.entryArray = function() {
        var eArr = [];
        try {
            for (var i = 0; i < this.elements.length; i++) {
                eArr.push(new Entry(this.elements[i].key, this.elements[i].value));
            };
        } catch (e) {
            return eArr;
        }
        return eArr;
    };
    
    function Entry(key, value) {
        this.key = key;
        this.value = value;
    }
}

 

<END>

 

posted @ 2016-01-26 10:59  MySomeDay  阅读(506)  评论(0编辑  收藏  举报