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 指导方针
Apr 05 Javascript
javascript 正则替换 replace(regExp, function)用法
May 22 Javascript
jQuery仿gmail实现fixed布局的方法
May 27 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
Jun 08 Javascript
最简单纯JavaScript实现Tab标签页切换的方式(推荐)
Jul 25 Javascript
jQuery实现可移动选项的左右下拉列表示例
Dec 26 Javascript
详解Angular.js中$http拦截器的介绍及使用
Jul 04 Javascript
node.js 发布订阅模式的实例
Sep 10 Javascript
原生js+css调节音量滑块
Jan 15 Javascript
vue实现公共方法抽离
Jul 31 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 Javascript
Vue2.x-使用防抖以及节流的示例
Mar 02 Vue.js
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
PHP实现QQ空间自动回复说说的方法
2015/12/02 PHP
分享PHP守护进程类
2015/12/30 PHP
Display SQL Server Version Information
2007/06/21 Javascript
document.forms用法示例介绍
2014/06/26 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
全面解析Bootstrap图片轮播效果
2015/12/03 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
Angular排序实例详解
2017/06/28 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
详解vue3.0 的 Composition API 的一种使用方法
2020/10/26 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
Python pass 语句使用示例
2014/03/11 Python
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
Django自定义用户表+自定义admin后台中的字段实例
2019/11/18 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
HTML5 placeholder(空白提示)属性介绍
2013/08/07 HTML / CSS
Expedia法国:全球最大在线旅游公司
2018/09/30 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
法国床上用品商店:La Compagnie du lit
2019/12/26 全球购物
电气专业推荐信范文
2013/11/18 职场文书
会计专业毕业生求职信分享
2014/01/03 职场文书
感恩节活动方案
2014/01/27 职场文书
丑小鸭教学反思
2014/02/03 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
公民授权委托书
2014/10/15 职场文书
2014年爱国卫生工作总结
2014/11/22 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
丧事答谢词大全
2015/09/30 职场文书
检讨书怎么写?
2019/06/21 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers