• js实现Map功能



    /*
    * MAP对象,实现MAP功能
    *
    * 接口:
    * size() 获取MAP元素个数
    * isEmpty() 判断MAP是否为空
    * clear() 删除MAP所有元素
    * put(key, value) 向MAP中增加元素(key, value)
    * remove(key) 删除指定KEY的元素,成功返回True,失败返回False
    * get(key) 获取指定KEY的元素值VALUE,失败返回NULL
    * element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
    * containsKey(key) 判断MAP中是否含有指定KEY的元素
    * containsValue(value) 判断MAP中是否含有指定VALUE的元素
    * values() 获取MAP中所有VALUE的数组(ARRAY)
    * keys() 获取MAP中所有KEY的数组(ARRAY)
    *
    * 例子:
    * var map = new Map();
    *
    * map.put("key", "value");
    * var val = map.get("key")
    * ……
    *
    */
    function Map() {
      this.elements = new Array();

      //获取MAP元素个数
      this.size = function() {
        return this.elements.length;
      };

    //判断MAP是否为空
    this.isEmpty = function() {
      return (this.elements.length < 1);
    };

    //删除MAP所有元素
    this.clear = function() {
      this.elements = new Array();
    };

    //向MAP中增加元素(key, value)
    this.put = function(_key, _value) {
      this.elements.push( {
        key : _key,
        value : _value
      });
    };

    //删除指定KEY的元素,成功返回True,失败返回False
    this.remove = function(_key) {
      var bln = false;
      try {
        for (var i = 0; i < this.elements.length; i++) {
          if (this.elements[i].key == _key) {
            this.elements.splice(i, 1);
            return true;
          }
        }
      } catch (e) {
        bln = false;
      }
      return bln;
    };

    //获取指定KEY的元素值VALUE,失败返回NULL
    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;
      }
    };

    //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
    this.element = function(_index) {
       if (_index < 0 || _index >= this.elements.length) {
         return null;
       }
       return this.elements[_index];
    };

    //判断MAP中是否含有指定KEY的元素
    this.containsKey = function(_key) {
      var bln = false;
      try {
        for (var i = 0; i < this.elements.length; i++) {
          if (this.elements[i].key == _key) {
            bln = true;
          }
        }
      } catch (e) {
        bln = false;
      }
      return bln;
    };

    //判断MAP中是否含有指定VALUE的元素
    this.containsValue = function(_value) {
      var bln = false;
      try {
        for (var i = 0; i < this.elements.length; i++) {
          if (this.elements[i].value == _value) {
            bln = true;
          }
        }
      } catch (e) {
        bln = false;
      }
      return bln;
    };

    //获取MAP中所有VALUE的数组(ARRAY)
    this.values = function() {
      var arr = new Array();
      for (var i = 0; i < this.elements.length; i++) {
        arr.push(this.elements[i].value);
      }
      return arr;
    };

    //获取MAP中所有KEY的数组(ARRAY)
    this.keys = function() {
      var arr = new Array();
      for (var i = 0; i < this.elements.length; i++) {
        arr.push(this.elements[i].key);
      }
      return arr;
    };


    }

  • 相关阅读:
    黑盒测试和白盒测试的区别
    alpha测试和beta测试的区别
    selenium退出语句区别
    QTP8.2--安装流程
    Xshell无法连接Linux虚拟机问题
    Linux-----centos6.2---安装Linux的流程
    MySql错误处理--错误代码和消息
    基于Linux系统--web环境搭建
    前端底层-作用域 this 原型笔试题练习
    前端底层-冒泡与捕获
  • 原文地址:https://www.cnblogs.com/guijl/p/2734972.html
Copyright © 2020-2023  润新知