zoukankan      html  css  js  c++  java
  • 【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 + "
    ");
                }
                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>
  • 相关阅读:
    配置secureCRT
    LINUX的网口绑定(bond)
    背包形动态规划 fjutoj2375 金明的预算方案
    背包形动态规划 fjutoj1380 Piggy-Bank
    背包形动态规划 fjutoj2347 采药
    树形动态规划 fjutoj-2392 聚会的快乐
    树形动态规划 fjutoj-2131 第四集,聚集城市
    andriod开发--使用Http的Get和Post方式与网络交互通信
    线段树复合标记
    图论之拓扑排序 poj 2367 Genealogical tree
  • 原文地址:https://www.cnblogs.com/carsonwuu/p/7538999.html
Copyright © 2011-2022 走看看