Я написал карту в JS с функцией Traversal, пожалуйста, прокомментируйте.
//map.js
Array.prototype.remove = function (s) {for (var i = 0; i <this.length; i ++) {if (s == this [i]) this.splice (i, 1); }} /** * Простая карта * * * var m = new Map (); * m.put ('key', 'value'); * ... * var s = ""; * m.each (function (key, value, index) { * s+= index+":"+key+"="+value+"/n"; *}); * оповещение (ы); * * @author dewitt * @date 2008-05-24 */function map () {/** массив для хранения клавиш (используется для Traversal) */this.keys = new Array (); / ** сохранить данные*/ this.data = new Object (); / ** * Поместите пару клавиш-значения * @param {string} key * @param {object} value */ this.put = function (key, value) {if (this.data [key] == null) {this.keys.push (key); } this.data [key] = value; }; / ** * Получить значение, соответствующее клавишу * @param {string} key * @return {object} value */ this.get = function (key) {return this.data [key]; }; / *** Удалить пару клавиш-значений* @param {string} key*/ this.remove = function (key) {this.keys.remove (key); this.data [key] = null; }; / ** * Перенос карты и выполнение функции обработки * * @param {function} функция обратного вызова (ключ, значение, index) {..} */ this.each = function (fn) {if (typeof fn! = 'Function') {return; } var len = this.keys.length; for (var i = 0; i <len; i ++) {var k = this.keys [i]; fn (k, this.data [k], i); }}; / *** Получить массив клавиш-значения (аналогично java's entrySet ())* @return массив объекта клавиш value {key, value}*/ this.entrys = function () {var len = this.keys.length; var intrys = new Array (Len); for (var i = 0; i <len; i ++) {intrents [i] = {key: this.keys [i], value: this.data [i]}; } return ntrys; }; / *** Определите, является ли карта пустой*/ this.isempty = function () {return this.keys.length == 0; }; / *** Получите количество пар клавишных значений*/ this.size = function () {return this.keys.length; }; / ** * Переписать toString */ this.toString = function () {var s = "{"; for (var i = 0; i <this.keys.length; i ++, s+= ',') {var k = this.keys [i]; s+= k+"="+this.data [k]; } s+= "}"; возврат S; }; } function testmap () {var m = new Map (); m.put ('key1', 'comtop'); M.Put ('key2', 'Southern Power Grid'); M.Put ('key3', 'jingxin Garden'); оповещение ("init:"+m); m.put ('key1', 'kantop'); Alert ("set key1:"+m); M.Remove ("key2"); оповещение ("удалить KEY2:"+M); var s = ""; M.Eaph (функция (ключ, значение, индекс) {s+= index+":"+key+"="+value+"/n";}); предупреждение (ы); } //testmap.htm? <html> <head> <title> тестовая карта </title> <script language = "javascript" src = "map.js"> </script> </head> <body> <input type = "Кнопка" value = "test" Onclick = "testmap ()"> </body> </html>Приведенная выше статья представляет собой простой пример карты JavaScript (обмен), который является всем контентом, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.