js map型別實現

洪小燈發表於2015-11-24

map是物件導向程式語言中比較常使用的一種資料型別,主要是因為比較好用的鍵值對形式,javascript由於是指令碼語言,原生的型別中沒有map中型別,但是可以通過構造自己建立map資料型別:

map型別:

function UtilMap() {
        var struct = function (key, value) {
            this.key = key;
            this.value = value;
        };

        var put = function (key, value) {
            for (var i = 0; i < this.arr.length; i++) {
                if (this.arr[i].key === key) {
                    this.arr[i].value = value;
                    return;
                }
            }
            this.arr[this.arr.length] = new struct(key, value);
        };

        var get = function (key) {
            for (var i = 0; i < this.arr.length; i++) {
                if (this.arr[i].key === key) {
                    return this.arr[i].value;
                }
            }
            return null;
        };
        var getKey = function (index) {
            if (index > -1 && index < this.arr.length) {
                return this.arr[index].key;
            }
            return null;
        };
        var remove = function (key) {
            var v;
            for (var i = 0; i < this.arr.length; i++) {
                v = this.arr.pop();
                if (v.key === key) {
                    continue;
                }
                this.arr.unshift(v);
            }
        };

        var size = function () {
            return this.arr.length;
        };

        var isEmpty = function () {
            return this.arr.length <= 0;
        };
        this.arr = new Array();
        this.get = get;
        this.getKey = getKey;
        this.put = put;
        this.remove = remove;
        this.size = size;
        this.isEmpty = isEmpty;
    }



通過這中方式建立出來的map型別,可以使用new 關鍵字,

例如:

var map = new UtilMap();

並且可以擴充自己需要的方法,這就實現了比較簡單的map 型別。

相關文章