900wwj 发表于 2008-12-3 09:52:56

用 Javascript 写的一个映射表类

<P>该类可以通过关键字(key)查找相对应的值(value),关键字的类型可以是String、Number、Boolean类型,值的类型不限,代码如下:</P><P>运行代码框<BR><TEXTAREA class=codeTextarea style="WIDTH: 468px; HEIGHT: 433px" rows=25 cols=66>&lt;script&gt;function struct(key, value){this.key = key;this.value = value;}function setAt(key, value){    for (var i = 0; i &lt; this.map.length; i){    if ( this.map.key === key )    {      this.map.value = value;      return;    }}    this.map = new struct(key, value);}function lookUp(key){for (var i = 0; i &lt; this.map.length; i){    if ( this.map.key === key )    {      return this.map.value;    }}    return null;}function removeKey(key){var v;for (var i = 0; i &lt; 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 &lt;= 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 arraymap.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")); // nullalert(map.lookUp("sw2")); // "sw2_1, sw2_2"    alert(map.getCount()); // 3    // number to stringmap.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 numbermap.setAt("1", 1);map.setAt("2", 2);alert(map.lookUp("1")); // 1alert(map.lookUp(1)); // "sw1"map.setAt("sw3", 33);alert(map.lookUp("sw3")); // 33    alert(map.getCount()); // 7    // number to numbermap.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 arraymap.setAt(false, new Array("false", "true"));alert(map.lookUp(false));    alert(map.getCount()); // 7}&lt;/script&gt;</TEXTAREA></P>
页: [1]
查看完整版本: 用 Javascript 写的一个映射表类