JS模拟的Map类实现方法


Posted in Javascript onJune 17, 2016

本文实例讲述了JS模拟的Map类。分享给大家供大家参考,具体如下:

根据java中map的属性,实现key----value保存

1、使用数组方式存储数据,(使用闭包)

function Map() {
  var struct = function (key, value) {
    this.key = key;
    this.value = value;
  }
  var put = function (key, value) {
    for (var i = 0; i < this.arr.length; i++) {
      if (this.arr[i].key === key) {
        this.arr[i].value = value;
        return;
      }
    }
    this.arr[this.arr.length] = new struct(key, value);
  }
  var get = function (key) {
    for (var i = 0; i < this.arr.length; i++) {
      if (this.arr[i].key === key) {
        return this.arr[i].value;
      }
    }
    return null;
  }
  var remove = function (key) {
    var v;
    for (var i = 0; i < this.arr.length; i++) {
      v = this.arr.pop();
      if (v.key === key) {
        continue;
      }
      this.arr.unshift(v);
    }
  }
  var size = function () {
    return this.arr.length;
  }
  var isEmpty = function () {
    return this.arr.length <= 0;
  }
  this.arr = new Array();
  this.get = get;
  this.put = put;
  this.remove = remove;
  this.size = size;
  this.isEmpty = isEmpty;
}

2、使用JSON方式存储数据(使用原型方式拓展方法)

function Map() {
  this.obj = {};
  this.count = 0;
}
Map.prototype.put = function (key, value) {
  var oldValue = this.obj[key];
  if (oldValue == undefined) {
    this.count++;
  }
  this.obj[key] = value;
}
Map.prototype.get = function (key) {
  return this.obj[key];
}
Map.prototype.remove = function (key) {
  var oldValue = this.obj[key];
  if (oldValue != undefined) {
    this.count--;
    delete this.obj[key];
  }
}
Map.prototype.size = function () {
  return this.count;
}
var map = new Map();
map.put("key","map");
map.put("key","map1");
alert(map.get("key"));//map1
map.remove("key");
alert(map.get("key"));//undefined

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

Javascript 相关文章推荐
人人网javascript面试题 可以提前实现下
Jan 05 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 Javascript
JS实现生成会变大变小的圆环实例
Aug 05 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
Feb 22 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
Apr 29 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
Oct 12 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
Mac下安装vue
Apr 11 Javascript
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
Sep 19 Javascript
Vue入门之数量加减运算操作示例
Dec 11 Javascript
小程序采集录音并上传到后台
Nov 22 Javascript
JavaScript canvas绘制圆弧与圆形
Feb 18 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
Jun 17 #Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
Jun 16 #Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 #Javascript
jquery实现简单Tab切换菜单效果
Jul 17 #Javascript
特殊日期提示功能的实现方法
Jun 16 #Javascript
JS代码实现根据时间变换页面背景效果
Jun 16 #Javascript
基于JS代码实现图片在页面中旋转效果
Jun 16 #Javascript
You might like
PHP学习之PHP表达式
2006/10/09 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
Smarty模板类内部原理实例分析
2019/07/03 PHP
AngularJS基础学习笔记之简单介绍
2015/05/10 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
2018/09/16 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
浅谈JS和jQuery的区别
2019/03/27 jQuery
在Vue项目中用fullcalendar制作日程表的示例代码
2019/08/04 Javascript
vue实现计步器功能
2019/11/01 Javascript
js实现动态时钟
2020/03/12 Javascript
react中hook介绍以及使用教程
2020/12/11 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
Python机器学习之决策树算法实例详解
2017/12/06 Python
python快排算法详解
2019/03/04 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
深入了解Django View(视图系统)
2019/07/23 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
2020/01/28 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
keras之权重初始化方式
2020/05/21 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
CSS3系列之3D制作方法案例
2017/08/14 HTML / CSS
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
优秀团干部个人事迹
2014/05/29 职场文书
书法大赛策划方案
2014/06/04 职场文书
2015年生活老师工作总结
2015/05/27 职场文书
车位出租协议书范本
2016/03/19 职场文书