【javascript】js實現容器Map


js實現容器Map

var可以定義一個局部變量,當然如果var定義在最外層的話,就是全局的局部變量,也就算是全局變量了。

this關鍵字定義的變量准確的說應該算是成員變量。即定義的是調用對象的成員變量。

另外在“類(構造函數)”中,我們通常也會用var定義私有屬性,而this定義公共屬性。

在該博客中,實現的是容器Map的增加,刪除,查詢,打印功能。源碼如下:

<script>
    function Map() {
        var map = function(key, value) {//鍵值對
            this.key = key;
            this.value = value;
        }
        var put = function(key, value) {//添加鍵值對

            this.arr[this.arr.length] = new map(key, value);
        }
        var remove = function(key) {//刪除key="key"的鍵值對,返回value值
            for (var i = 0; i < this.arr.length; i++) {
                var temp = this.arr.pop();
                if (this.arr[i].key === key) {

                    return this.arr[i].value;
                }
                this.arr.push(temp);
            }
            return null;
        }
        var getKey = function(value) {//返回key對應的value值
            for (var i = 0; i < this.arr.length; i++) {
                if (this.arr[i].value === value)
                    return this.arr[i].key;
            }
            return null;
        }
        var getValue = function(key) {//返回value對應的key值
            for (var i = 0; i < this.arr.length; i++) {
                if (this.arr[i].key === key)
                    return this.arr[i].value;
            }
            return null;
        }
        var getSize = function() {//返回容器大小
            return this.arr.length;
        }

        var show = function() {//打印容器內容
            var string = "";
            for (var i = 0; i < this.arr.length; i++) {
                string += (this.arr[i].key + ":" + this.arr[i].value + "\n");
            }
            alert(string);
        }
        this.arr = new Array();
        this.remove = remove;
        this.put = put;
        this.show = show;
        this.getKey = getKey;
        this.getValue = getValue;
        this.getSize = getSize;

    }
</script>

    <script type="text/javascript">
        var map = new Map();
        map.put("num", 1);
        map.put("red", "2");
        alert(map.getKey(1));
        alert(map.remove("num"));
        map.show();
    </script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM