Javascript实现的Map集合工具类完整实例


Posted in Javascript onJuly 31, 2015

本文实例讲述了Javascript实现的Map集合工具类。分享给大家供大家参考。具体如下:

var Map = function(){
  // 构造entry实体
  var Entry = function(key, value){
    this.key = key;
    this.value = value;
  }
  this.entries = new Array();
  // 构造put方法在数组中放入一个Entry
  this.put = function(key, value){
    // 数组中已存在就不放入
    for (var i = 0; i < this.size(); i++) {
      if (this.entries[i].key === key) {
        return false;
      }
    }
    this.entries.push(new Entry(key, value));
  };
  // 模拟get方法
  this.get = function(key){
    for (var i = 0; i < this.size(); i++) {
      if (this.entries[i].key === key) {
        return this.entries[i].value;
      }
    }
    return null;
  };
  // 查找下标值
  this.indexOf = function(key){
    var index = -1;
    for (var i = 0; i < this.size(); i++) {
      if (this.entries[i].key === key) {
        index = i;
        break;
      }
    }
    return index;
  }
  // 删除一个元素
  this.remove = function(key){
    var index = this.indexOf(key);
    if (index != -1) {
      this.entries.splice(index, 1);
    }
  }
  // 取得map长度
  this.size = function(){
    return this.entries.length;
  };
  // 重新设置键值对
  this.setValue = function(key, value){
    var index = this.indexOf(key);
    if (index != -1) {
      this.entries[i].value = value;
    };
  };
  // 是否为空map
  this.isEmpty = function(){
    return this.size() <= 0;
  };
  //清空map ;
  this.clear = function(){
    this.entries = [];
  };
  // 得到entry实体
  this.getEntry = function(index){
    if (index >= 0 && index < this.size()) {
      return this.entries[index];
    }
    return null;
  }
  this.toString = function(){
    var str = "[";
    for (var i = 0; i < this.size(); i++) {
      str += this.getEntry(i).key + "=" + this.getEntry(i).value + ",";
    }
    // 去除最后一个","
    str = str.substring(0, str.length - 1);
    str += "]";
    return str;
  };
}

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
浅谈JavaScript的Polymer框架中的事件绑定
Jul 29 Javascript
理解JS绑定事件
Jan 19 Javascript
深入浅析Extjs中store分组功能的使用方法
Apr 20 Javascript
Vue.js每天必学之过滤器与自定义过滤器
Sep 07 Javascript
js仿手机页面文件下拉刷新效果
Oct 14 Javascript
js实现手机发送验证码功能
Mar 13 Javascript
浅谈ECMAScript6新特性之let、const
Aug 02 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
JavaScript中var、let、const区别浅析
Jun 24 Javascript
vue elementUI tree树形控件获取父节点ID的实例
Sep 12 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
Dec 28 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 Javascript
JS特效实现图片自动播放并可控的效果
Jul 31 #Javascript
javascript实现列表滚动的方法
Jul 30 #Javascript
百度地图API之本地搜索与范围搜索
Jul 30 #Javascript
javaScript实现滚动新闻的方法
Jul 30 #Javascript
javascript中递归函数用法注意点
Jul 30 #Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
Jul 30 #Javascript
jQuery代码实现发展历程时间轴特效
Jul 30 #Javascript
You might like
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
vue元素实现动画过渡效果
2017/07/01 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
Python采用raw_input读取输入值的方法
2014/08/18 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
解决TensorFlow模型恢复报错的问题
2020/02/06 Python
一文解决django 2.2与mysql兼容性问题
2020/07/15 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
网页美工求职信范文
2014/04/17 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
2015年信贷员工作总结
2015/04/28 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
python 下载文件的几种方式分享
2021/04/07 Python
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL
vue css 相对路径导入问题级踩坑记录
2022/06/05 Vue.js