Javascript下实现MAP
Java中大家会经常用到MAP,但是在javascript中要如何实现呢,下面给大家贴段从网上搜集过来的代码,写得还是不错的。
- /**
- * Make a map like java.
- * You can use this map like this :
- * var myMap = new Map();
- * myMap.put("key","value");
- * var key = myMap.get("key");
- */
- function Map() {
- this.elements = new Array();
- this.size = function() {
- return this.elements.length;
- }
- this.isEmpty = function() {
- return (this.elements.length < 1);
- }
- this.clear = function() {
- this.elements = new Array();
- }
- this.put = function(_key, _value) {
- this.elements.push({key:_key, value:_value});
- }
- 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;
- }
- 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;
- }
- }
- this.element = function(_index) {
- if (_index < 0 || _index >= this.elements.length) {
- return null;
- }
- return this.elements[_index];
- }
- 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;
- }
- 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;
- }
- this.values = function() {
- var arr = new Array();
- for (i = 0; i < this.elements.length; i++) {
- arr.push(this.elements[i].value);
- }
- return arr;
- }
- this.keys = function() {
- var arr = new Array();
- for (i = 0; i < this.elements.length; i++) {
- arr.push(this.elements[i].key);
- }
- return arr;
- }
- }
复制代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论