javascript 实现map集合


Posted in Javascript onApril 03, 2015

前几天项目上想用map集合一样的东西,简单拿对象拼了一下子,今天闲的慌实现一下
大家不要见笑

代码

var Map = function (){
  /************基础变量**************/
  var hashmap = {};
  var keys = [];
  var vals = [];
  var entrys = [];
  var size = 0;
  var index = {};
 
  var Entry = function(key,value){
    var entryKey = key;
    var entryValue = value;
    this.getKey = function (){
      return entryKey;
    };
    this.getValue = function(){
      return entryValue;
    };
  };
  /************基本方法 按字母排序**************/
  this.clear = function(key) {
    hashmap[key] = undefined;
    var i = index[key];
    entrys.splice(i,1);
    vals.splice(i,1);
    keys.splice(i,1);
    size --;
  };
   
  this.entrySet = function() {
    return entrys;
  };
   
  this.get = function(key){
    return hashmap[key];
  };
   
  this.isEmpty = function() {
    if(hashmap) return true;
    return false;
  };
 
  this.keySet = function() {
    return keys;
  };
   
  this.put = function(key,value){
    if(!this.get(key)){
      entrys.push(new Entry(key,value));
      keys.push(key);
      vals.push(value);
      index[key] = size;
      size ++;
    } else {
      var i = index[key];
      entrys[i] = new Entry(key,value);
      vals[i] = value;
    }
    hashmap[key] = value;
  };
 
  this.size = function() {
    return size;
  };
   
  this.values = function() {
    return vals;
  };
};
/************扩展方法**************/
Map.prototype = {
  containsKey : function(key) {
    if(this.get(key)) return true;
    return false;
  },
  putAll : function(set) {
    for(var e in set){
      if(set[e]){
        this.put(e,set[e]);
      }
    }
  },
  remove : function(key) {
    var v = this.get(key);
    this.clear(key);
    return v;
  }
};
var h = new Map();
h.put('a',10);
h.put('b',11);
h.put('c',3);
h.put('d',5);
console.info(h.size());
h.clear('a');
console.info(h.containsKey('a'));
console.info(h.containsKey('b'));
console.info(h.size());
 
console.log(h.entrySet());
console.log(h.keySet());
console.log(h.values());
 
for(var i in h.entrySet()){
  var obj = h.entrySet()[i];
  console.log(obj.getKey() + ":" + obj.getValue());
}

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
jQueryUI写一个调整分类的拖放效果实现代码
May 10 Javascript
javascript学习笔记(八)正则表达式
Oct 08 Javascript
实例代码详解jquery.slides.js
Nov 16 Javascript
node.js入门实例helloworld详解
Dec 23 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
Sep 05 jQuery
微信小程序开发之路由切换页面重定向问题
Sep 18 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
node使用Mongoose类库实现简单的增删改查
Nov 08 Javascript
说说Vue.js中的functional函数化组件的使用
Feb 12 Javascript
javascript中导出与导入实现模块化管理教程
Dec 03 Javascript
vuex Module将 store 分割成模块的操作
Dec 07 Vue.js
jQuery制作简洁的图片轮播效果
Apr 03 #Javascript
jQuery制作效果超棒的手风琴折叠菜单
Apr 03 #Javascript
jQuery实现左右切换焦点图
Apr 03 #Javascript
基于jquery ui的alert,confirm方案(支持换肤)
Apr 03 #Javascript
javascript制作sql转换为stringBuffer的小工具
Apr 03 #Javascript
JavaScript替换当前页面的方法
Apr 03 #Javascript
iframe里使用JavaScript控制主页转向的方法
Apr 03 #Javascript
You might like
phpMyadmin 用户权限中英对照
2010/04/02 PHP
arguments对象
2006/11/20 Javascript
解决jquery的datepicker的本地化以及Today问题
2012/05/23 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
Vue基础配置讲解
2019/11/29 Javascript
node.js使用stream模块实现自定义流示例
2020/02/13 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
Python实现遍历数据库并获取key的值
2015/05/17 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
python之消除前缀重命名的方法
2018/10/21 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
html5教程调用绘图api画简单的圆形代码分享
2013/12/04 HTML / CSS
详解canvas多边形(蜘蛛图)的画法示例
2018/01/29 HTML / CSS
实用求职信范文分享
2013/12/25 职场文书
写给保洁员表扬信
2014/01/08 职场文书
面包店的创业计划书范文
2014/01/16 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
违反交通法规检讨书
2014/09/10 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
运动会致辞稿
2015/07/29 职场文书
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
Python办公自动化解决world文件批量转换
2021/09/15 Python
div与span之间的区别与使用介绍
2021/12/06 HTML / CSS