当前位置:编程学习 > JAVA >>

javascript 实现 Map 工具包

[javascript]  
(function() {  
    window['XR'] = {};  
    var midContainer = new Array();  
    var mapContainer = new Array();  
    var MAPID = 0;  
    function Map(mid) {  
        var type = typeof (mid);  
        if ((type != "string") && (type != "number")) {  
            throw "Map id must be a string or number!";  
        }  
        for (var _c = 0; midContainer[_c]; _c++) {  
            if (mid == midContainer[_c])  
                throw "You have already created Map : " + mid;  
        }  
        var identify = MAPID++;  
        midContainer[identify] = mid;  
        mapContainer[identify] = {};  
        mapContainer[identify]["id"] = mid;  
        this.id = mid;  
        this.prefix = "K_";  
        this.toString = function() {  
            return "This is a map object!";  
        }  
    }  
  
  
    Map.prototype.getMapId = function() {  
        return this.id;  
    }  
    Map.prototype.getMapIndex = function() {  
        var index = -1;  
        for (var _i = 0; mapContainer[_i]; _i++) {  
            if (this.id == mapContainer[_i]["id"]) {  
                index = _i;  
            }  
        }  
        return index;  
    }  
    Map.prototype.put = function(key, value) {  
        if ( typeof (key) != "string") {  
            throw "key must be a string!";  
        }  
        if ( typeof (value) == "function") {  
            throw "value shouldn't be a function!";  
        }  
        if (this.trimStr(key) == "") {  
            throw "key is empty!";  
        }  
        var index = -1;  
        index = this.getMapIndex();  
        if (index != -1) {  
            key = this.prefix + key;  
            mapContainer[index][key] = value;  
        }  
    }  
    Map.prototype.get = function(key) {  
        var index = -1;  
        index = this.getMapIndex();  
        var value = "";  
        if (index != -1) {  
            var _tV = mapContainer[index];  
            key = this.prefix + key;  
            value = (_tV.hasOwnProperty(key)) ? _tV[key] : "You haven't save this key's value!";  
        } else {  
            value = "Current Map has lost connection!";  
        }  
        return value;  
    }  
    Map.prototype.deleteKey = function(key) {  
        var index = -1;  
        index = this.getMapIndex();  
        key = this.prefix + key;  
        var _tV = mapContainer[index];  
        if (_tV.hasOwnProperty(key)) {  
            delete _tV[key];  
        }  
    }  
  
    Map.prototype.clearMap = function() {  
        var index = -1;  
        index = this.getMapIndex();  
        var maxId = MAPID - 1;  
        if (index <= maxId) {  
            for (var t = index; t < maxId; t++) {  
                mapContainer[t] = mapContainer[t + 1];  
                midContainer[t] = midContainer[t + 1];  
            }  
            mapContainer[maxId] = null;  
            midContainer[maxId] = null;  
            this.id = null;  
            this.toString = null;  
            MAPID--;  
        }  
    }  
  
    Map.prototype.trimStr = function(str) {  
        return str.replace(/(^\s*)|(\s*$)/g, "");  
    }  
    Map.prototype.isEmpty = function() {  
        var index = -1;  
        index = this.getMapIndex();  
        if (index != -1) {  
            for (var attr in mapContainer[index]) {  
                //alert(mapContainer[index][attr]);  
                if (attr != "id") {  
                    return false;  
                }  
            }  
        }  
        return true;  
    }  
    Map.prototype.showMap = function() {  
        var index = -1; &
补充:web前端 , JavaScript ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,