js中没有map这个类,只能自己写一个。以下map.js和map-util.js都是自定义的map,任选其一就可以。你可以用它来像java里new Map()和put()、remove()、get()等方法。
map.js:
function Map() { var struct = function(key, value) { this.key = key; this.value = value; } var put = function(key, value){ for (var i = 0; i < this.arr.length; i++) { if ( this.arr[i].key === key ) { this.arr[i].value = value; return; } } this.arr[this.arr.length] = new struct(key, value); } var get = function(key) { for (var i = 0; i < this.arr.length; i++) { if ( this.arr[i].key === key ) { return this.arr[i].value; } } return null; } var remove = function(key) { var v; for (var i = 0; i < this.arr.length; i++) { v = this.arr.pop(); if ( v.key === key ) { continue; } this.arr.unshift(v); } } var size = function() { return this.arr.length; } var isEmpty = function() { return this.arr.length <= 0; } this.arr = new Array(); this.get = get; this.put = put; this.remove = remove; this.size = size; this.isEmpty = isEmpty; }
map-util.js:
function Map() { this.elements = new Array(); var i; //获取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) { this.elements.push( { key : _key, value : _value }); }; this.putFirst = function(_key, _value){ var tempList = this.elements; this.elements = new Array(); this.elements.push( { key : _key, value : _value }); for(var i=0;i<tempList.length;i++){ this.elements.push( tempList[i] ); } } //删除指定KEY的元素,成功返回True,失败返回False this.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,失败返回NULL this.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),失败返回NULL this.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中所有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; }; //获取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; }; }
总结
以上所述是小编给大家介绍的 Javacript中自定义的map.js 的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
我正在尝试为处理COPY HTTP方法的资源创建一个自定义Spring MVC控制器。 @请求映射只接受以下请求方法值:GET、HEAD、POST、PUT、PATCH、DELETE、OPTIONS和TRACE。 在Spring MVC控制器中处理自定义HTTP方法是否有任何推荐的方法?
在自定义arrayAdapter中实现自定义getFilter时遇到问题。实际上,我不知道如何实现它。尝试了各种代码,但仍然没有成功。这是我的自定义阵列适配器。 这是ListTO课程。 这是布局图。 这里的搜索关键字来自“inputSearch”编辑文本。 这是文本更改的侦听器。 谢谢
问题内容: 因此,我正在用Java开发DVD租赁系统,并且遇到了视图问题。这是我的代码: 现在,Member和Item只是我制作的代表用户(成员)和电影/游戏(Item)的对象类。 和 我的问题是,我对如何创建自定义的,覆盖的“ SetValueAt()”方法以用“成员/项”中的信息填充JTables感到困惑。另一个问题是侦听器类中的所有空if语句。我不确定如何执行它们。如果有人可以就任何这些问题
本章将会讨论如何在API设计中使用自定义方法。 自定义方法指的是五个标准方法之外的API方法。他们应当仅用于标准方法不易表达的功能。一般而言,API设计者应当尽可能优先考虑使用标准方法,而不是自定义方法。标准方法相对更简单,定义完善的语义,并且开发者也更加熟悉;这使标准方法更易用,并且使用者更难犯错。使用标准方法的另一个优势是API平台会有更好的支持,如计费、错误处理、日志、监控等等。 自定义方法
本文向大家介绍wxWidgets自定义按钮的方法,包括了wxWidgets自定义按钮的方法的使用技巧和注意事项,需要的朋友参考一下 场景: 1.现在的软件上的按钮都不是标准的按钮了,因为基本上是贴图上去的,正常情况下一种图片,鼠标移上去之后按钮显示另一种效果,按下去之后又是另一种效果。 2.wx的做法其实和mfc的按钮原理是一样的,就是给按钮贴图和重绘背景。 以下是源文件. dh_bitmap_b
本文向大家介绍在C++中自定义宏的简单方法,包括了在C++中自定义宏的简单方法的使用技巧和注意事项,需要的朋友参考一下 可以使用宏定义没有返回值的“函数”。例如: 这样的“函数”与真正意义上的函数有本质的区别,因为宏是一个编译前行为,仅仅是编译前对文本进行替换。在Python源码中,经常可以看到下面类似的宏定义: 为什么要使用do { ... } while (0)这样的语法而