首页 > 编程 > JavaScript > 正文

JS模拟的Map类实现方法

2019-11-20 09:41:00
字体:
来源:转载
供稿:网友

本文实例讲述了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"));//map1map.remove("key");alert(map.get("key"));//undefined

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表