javascript实现Java中的Map对象功能的实例详解


Posted in Javascript onAugust 21, 2017

javascript  自定义对象实现Java中的Map对象功能

Java中有集合,Map等对象存储工具类,这些对象使用简易,但是在JavaScript中,你只能使用Array对象。

这里我创建一个自定义对象,这个对象内包含一个数组来存储数据,数据对象是一个Key,可以实际存储的内容! 

这里Key,你要使用String类型,和Java一样,你可以进行一些增加,删除,修改,获得的操作。

使用很简单,我先把工具类给大家看下:

/** 
 * @version 1.0 
 * @author cuisuqiang@163.com 
 * 用于实现页面 Map 对象,Key只能是String,对象随意 
 */ 
var Map = function(){ 
 this._entrys = new Array(); 
  
 this.put = function(key, value){ 
  if (key == null || key == undefined) { 
   return; 
  } 
  var index = this._getIndex(key); 
  if (index == -1) { 
   var entry = new Object(); 
   entry.key = key; 
   entry.value = value; 
   this._entrys[this._entrys.length] = entry; 
  }else{ 
   this._entrys[index].value = value; 
  }   
 }; 
 this.get = function(key){ 
  var index = this._getIndex(key); 
  return (index != -1) ? this._entrys[index].value : null; 
 }; 
 this.remove = function(key){ 
  var index = this._getIndex(key); 
  if (index != -1) { 
   this._entrys.splice(index, 1); 
  } 
 }; 
 this.clear = function(){ 
  this._entrys.length = 0;; 
 }; 
 this.contains = function(key){ 
  var index = this._getIndex(key); 
  return (index != -1) ? true : false; 
 }; 
 this.getCount = function(){ 
  return this._entrys.length; 
 }; 
 this.getEntrys = function(){ 
  return this._entrys; 
 }; 
 this._getIndex = function(key){ 
  if (key == null || key == undefined) { 
   return -1; 
  } 
  var _length = this._entrys.length; 
  for (var i = 0; i < _length; i++) { 
   var entry = this._entrys[i]; 
   if (entry == null || entry == undefined) { 
    continue; 
   } 
   if (entry.key === key) {//equal 
    return i; 
   } 
  } 
  return -1; 
 }; 
}

 如果你不懂Js中对象的创建等一些基础知识,自己可以网上查一下。

// 自定义Map对象 
var map = new Map(); 
map.put("a","a"); 
alert(map.get("a")); 
map.put("a","b"); 
alert(map.get("a"));

先弹出 a 后面弹出 b ,因为后面的会覆盖前面的!

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
在IE下获取object(ActiveX)的Param的代码
Sep 15 Javascript
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
CheckBoxList多选样式jquery、C#获取选择项
Sep 06 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
Dec 16 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
Apr 20 Javascript
基于javascript实现句子翻牌网页版小游戏
Mar 23 Javascript
JS实现列表页面隔行变色效果
Mar 25 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 jQuery
全站最详细的Vuex教程
Apr 13 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
May 16 Javascript
vue弹出框组件封装实例代码
Oct 31 Javascript
javascript 代码是如何被压缩的示例代码
May 06 Javascript
Vue ElementUI之Form表单验证遇到的问题
Aug 21 #Javascript
JavaScript中各数制转换全面总结
Aug 21 #Javascript
JQuery判断正整数整理小结
Aug 21 #jQuery
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
Aug 21 #Javascript
Vue.js实现按钮的动态绑定效果及实现代码
Aug 21 #Javascript
Node.js简单入门前传
Aug 21 #Javascript
详解基于webpack2.x的vue2.x的多页面站点
Aug 21 #Javascript
You might like
MVC模式的PHP实现
2006/10/09 PHP
PHP弹出提示框并跳转到新页面即重定向到新页面
2014/01/24 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
Javascript中3个需要注意的运算符
2015/04/02 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
深入分析Javascript事件代理
2016/01/30 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
webpack4从0搭建组件库的实现
2020/11/29 Javascript
python多线程方式执行多个bat代码
2016/06/07 Python
Python Socket传输文件示例
2017/01/16 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
python tkinter图形界面代码统计工具(更新)
2019/09/18 Python
Python OpenCV读取显示视频的方法示例
2020/02/20 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
Python extract及contains方法代码实例
2020/09/11 Python
Python解析微信dat文件的方法
2020/11/30 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物