/** * 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的元素 * keys() 擷取Map中所有key的數組(array) * values() 擷取Map中所有value的數組(array) */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) {if (this.containsKey(_key) == true) {if (this.containsValue(_value)) {if (this.remove(_key) == true) {this.elements.push( {key : _key,value : _value});}} else {this.elements.push( {key : _key,value : _value});}} else {this.elements.push( {key : _key,value : _value});}},// 刪除指定key的元素,成功返回true,失敗返回falsethis.remove = function(_key) {var bln = false;try {for (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,失敗返回nullthis.get = function(_key) {try {for (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),失敗返回nullthis.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 (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 (i = 0; i < this.elements.length; i++) {if (this.elements[i].value == _value) {bln = true;}}} catch (e) {bln = false;}return bln;},// 擷取Map中所有key的數組(array)this.keys = function() {var arr = new Array();for (i = 0; i < this.elements.length; i++) {arr.push(this.elements[i].key);}return arr;},// 擷取Map中所有value的數組(array)this.values = function() {var arr = new Array();for (i = 0; i < this.elements.length; i++) {arr.push(this.elements[i].value);}return arr;};/** * 重寫toString */this.toString = function(){var s = "";for (i = 0; i < this.elements.length; i++) {s += this.elements[i].value+" ";}return s;};}