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 相关文章推荐
jquery 年会抽奖程序
Dec 22 Javascript
jquery 实现密码框的显示与隐藏示例代码
Sep 18 Javascript
jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
Dec 05 Javascript
js取float型小数点后两位数的方法
Jan 18 Javascript
推荐一款jQuery插件模板
Jan 09 Javascript
jQuery查找节点并获取节点属性的方法
Sep 09 Javascript
jQuery向父辈遍历的简单方法
Sep 18 Javascript
简单实现IONIC购物车功能
Jan 10 Javascript
vue实现动态数据绑定
Apr 28 Javascript
简单的Vue异步组件实例Demo
Dec 27 Javascript
Vue父子之间值传递的实例教程
Jul 02 Javascript
一文搞懂redux在react中的初步用法
Jun 09 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
php注入实例
2006/10/09 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
解决php extension 加载顺序问题
2019/08/16 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
juqery 学习之六 CSS--css、位置、宽高
2011/02/11 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
jquery实现select选择框内容左右移动代码分享
2015/11/21 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
深入浅析Bootstrap列表组组件
2016/05/03 Javascript
Boostrap入门准备之border box
2016/05/09 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
Python全局变量用法实例分析
2016/07/19 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
Pycharm如何打断点的方法步骤
2019/06/13 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
基于Python爬取51cto博客页面信息过程解析
2020/08/25 Python
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
技校个人求职信范文
2014/01/25 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android