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 相关文章推荐
浅析JS刷新框架中的其他页面 && JS刷新窗口方法汇总
Jul 08 Javascript
JS调试必备的5个debug技巧
Mar 07 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
May 11 Javascript
jquery实现的Banner广告收缩效果代码
Sep 02 Javascript
不得不分享的JavaScript常用方法函数集(上)
Dec 23 Javascript
JS实现去除数组中重复json的方法示例
Dec 21 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
Mar 06 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
May 17 Javascript
小程序日历控件使用方法详解
Dec 29 Javascript
VUEX 数据持久化,刷新后重新获取的例子
Nov 12 Javascript
JS原型和原型链原理与用法实例详解
Feb 05 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
解析PHP实现多进程并行执行脚本
2013/06/18 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
用 Composer构建自己的 PHP 框架之基础准备
2014/10/30 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
js setattribute批量设置css样式
2009/11/26 Javascript
jQuery.prototype.init选择器构造函数源码思路分析
2013/02/05 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
页面图片浮动左右滑动效果的简单实现案例
2014/02/10 Javascript
jQuery分组选择器用法实例
2014/12/23 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
JS module的导出和导入的实现代码
2019/02/25 Javascript
vue动态注册组件实例代码详解
2019/05/30 Javascript
JavaScript 空间坐标的使用
2020/08/19 Javascript
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
[06:53]2018DOTA2国际邀请赛寻真——为复仇而来的Newbee
2018/08/15 DOTA
跟老齐学Python之print详解
2014/09/28 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
详解Python map函数及Python map()函数的用法
2017/11/16 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
Python闭包思想与用法浅析
2018/12/27 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
一个C/C++编程面试题
2013/11/10 面试题
四查四看剖析材料
2014/02/14 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
旷课检讨书
2015/01/26 职场文书
2016学校先进党组织事迹材料
2016/02/29 职场文书
Python四款GUI图形界面库介绍
2022/06/05 Python