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 相关文章推荐
jQuery 使用手册(一)
Sep 23 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 Javascript
JS实现淘宝幻灯片效果的实现方法
Mar 22 Javascript
Javascript基础 函数“重载” 详细介绍
Oct 25 Javascript
JavaScript的9种继承实现方式归纳
May 18 Javascript
js简单网速测试方法完整实例
Dec 15 Javascript
使用原生js写ajax实例(推荐)
May 31 Javascript
AjaxUpLoad.js实现文件上传
Mar 05 Javascript
vue.js添加一些触摸事件以及安装fastclick的实例
Aug 28 Javascript
如何解决日期函数new Date()浏览器兼容性问题
Sep 11 Javascript
layui前端时间戳转化实例
Nov 15 Javascript
javascript设计模式 ? 原型模式原理与应用实例分析
Apr 10 Javascript
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
快速开发一个PHP扩展图文教程
2008/12/12 PHP
php 正则匹配函数体
2009/08/25 PHP
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
php生成验证码函数
2015/10/20 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
JQuery小知识
2010/10/15 Javascript
jquery自定义函数的多种方法
2014/01/09 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
vue router-link传参以及参数的使用实例
2017/11/10 Javascript
vue 将页面公用的头部组件化的方法
2017/12/18 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
vue interceptor 使用教程实例详解
2018/09/13 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
2018/11/08 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
python3解析库lxml的安装与基本使用
2018/06/27 Python
在Python中pandas.DataFrame重置索引名称的实例
2018/11/06 Python
编写一个类体现构造,公有,私有方法,静态,私有变量
2013/08/10 面试题
采购部经理岗位职责
2014/02/10 职场文书
毕业典礼主持词大全
2014/03/26 职场文书
自我推荐信范文
2014/05/09 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
计划生育诚信协议书
2014/11/02 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
企业开业庆典答谢词
2015/01/20 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
干部考核工作总结2015
2015/07/24 职场文书
参加招聘会后的感想
2015/08/10 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书