• 首页
  • 小学语文
  • 中学语文
  • 中学英语
  • 免费论文
  • 教学随笔
  • 学生作文
  • 综合考试
  • 试题教案
  • 育儿话题
  • 教学资源
  • 编程技术
  • 博客
  • 用Javascript写的一个映射表类

    日期:2002-08-05  地址:  作者:

    该类可以通过关键字(key)查找相对应的值(value),关键字的类型可以是String、Number、Boolean类型,值的类型不限,代码如下:

    <script>
    function struct(key, value){

      this.key = key;
      this.value = value;

    }

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

    }

    function lookUp(key)
    {
      for (var i = 0; i < this.map.length; i++)
      {
        if ( this.map[i].key === key )
        {
          return this.map[i].value;
        }
      }
     
      return null;
    }

    function removeKey(key)
    {
      var v;
      for (var i = 0; i < this.map.length; i++)
      {
        v = this.map.pop();
        if ( v.key === key )
          continue;
         
        this.map.unshift(v);
      }
    }

    function getCount(){
      return this.map.length;
    }

    function isEmpty(){
      return this.map.length <= 0;
    }

    function classMap() {

      this.map = new Array();

      this.lookUp = lookUp;
      this.setAt = setAt;
      this.removeKey = removeKey;
      this.getCount = getCount;
      this.isEmpty = isEmpty;
    }

    window.onload = function(){

      var map = new classMap();

      alert("is the map empty? " + map.isEmpty());
     
      // string to array
      map.setAt("sw1", new Array("sw1_1"));
      map.setAt("sw2", new Array("sw2_1", "sw2_2"));
      map.setAt("sw3", new Array("sw3_1", "sw3_2", "sw3_3"));
      alert(map.lookUp("sw5")); // null
      alert(map.lookUp("sw2")); // "sw2_1, sw2_2"
     
      alert(map.getCount()); // 3
     
      // number to string
      map.setAt(1, "sw1");
      map.setAt(2, "sw2");
      alert(map.lookUp(2)); // "sw2"
      map.setAt(2, new Array("sw2_1", "sw2_2"));
      alert(map.lookUp(2)); // "sw2_1, sw2_2"
     
      alert(map.getCount()); // 5
     
      // string to number
      map.setAt("1", 1);
      map.setAt("2", 2);
      alert(map.lookUp("1")); // 1
      alert(map.lookUp(1)); // "sw1"
      map.setAt("sw3", 33);
      alert(map.lookUp("sw3")); // 33
     
      alert(map.getCount()); // 7
     
      // number to number
      map.setAt(1, 11);
      map.setAt(2, 22);
      alert(map.lookUp(1)); // 11
     
      alert(map.getCount()); // 7
     
      map.removeKey(1);
      alert(map.lookUp(1)); // null
     
      alert(map.getCount()); // 6
     
      // boolean to array
      map.setAt(false, new Array("false", "true"));
      alert(map.lookUp(false));
     
      alert(map.getCount()); // 7

    }
    </script>

    对 用Javascript写的一个映射表类 文章的评论    [查看网友评论]

    验证码:
    匿名发表: