用 Javascript 写的一个映射表类
<P>该类可以通过关键字(key)查找相对应的值(value),关键字的类型可以是String、Number、Boolean类型,值的类型不限,代码如下:</P><P>运行代码框<BR><TEXTAREA class=codeTextarea style="WIDTH: 460px; HEIGHT: 169px" rows=10 cols=63><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.key === key ) { this.map.value = value; return; }} this.map = new struct(key, value);}function lookUp(key){for (var i = 0; i < 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 < 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 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}</script></TEXTAREA><BR><INPUT onclick=runCode() type=button value=运行代码> </P>
页:
[1]