Javacript中自定义的map.js  的方法


Posted in Javascript onNovember 26, 2017

 js中没有map这个类,只能自己写一个。以下map.js和map-util.js都是自定义的map,任选其一就可以。你可以用它来像java里new Map()和put()、remove()、get()等方法。

map.js:

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;   
}

map-util.js:

function Map() { 
  this.elements = new Array(); 
  var i; 
  //获取MAP元素个数 
  this.size = function() { 
    return this.elements.length; 
  }; 
  //判断MAP是否为空 
  this.isEmpty = function() { 
    return (this.elements.length < 1); 
  }; 
  //删除MAP所有元素 
  this.clear = function() { 
    this.elements = new Array(); 
  }; 
  //向MAP中增加元素(key, value)  
  this.put = function(_key, _value) { 
    this.elements.push( { 
      key : _key, 
      value : _value 
    }); 
  }; 
  this.putFirst = function(_key, _value){ 
    var tempList = this.elements; 
    this.elements = new Array(); 
    this.elements.push( { 
      key : _key, 
      value : _value 
    }); 
    for(var i=0;i<tempList.length;i++){ 
      this.elements.push( 
        tempList[i] 
      ); 
    } 
  } 
  //删除指定KEY的元素,成功返回True,失败返回False 
  this.remove = function(_key) { 
    var bln = false; 
    try { 
      for (i = 0; i < this.elements.length; i++) { 
        if (this.elements[i].key == _key) { 
          this.elements.splice(i, 1); 
          return true; 
        } 
      } 
    } catch (e) { 
      bln = false; 
    } 
    return bln; 
  }; 
  //获取指定KEY的元素值VALUE,失败返回NULL 
  this.get = function(_key) { 
    try { 
      for (i = 0; i < this.elements.length; i++) { 
        if (this.elements[i].key == _key) { 
          return this.elements[i].value; 
        } 
      } 
    } catch (e) { 
      return null; 
    } 
  }; 
  //获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL 
  this.element = function(_index) { 
    if (_index < 0 || _index >= this.elements.length) { 
      return null; 
    } 
    return this.elements[_index]; 
  }; 
  //判断MAP中是否含有指定KEY的元素 
  this.containsKey = function(_key) { 
    var bln = false; 
    try { 
      for (i = 0; i < this.elements.length; i++) { 
        if (this.elements[i].key == _key) { 
          bln = true; 
        } 
      } 
    } catch (e) { 
      bln = false; 
    } 
    return bln; 
  }; 
  //判断MAP中是否含有指定VALUE的元素 
  this.containsValue = function(_value) { 
    var bln = false; 
    try { 
      for (i = 0; i < this.elements.length; i++) { 
        if (this.elements[i].value == _value) { 
          bln = true; 
        } 
      } 
    } catch (e) { 
      bln = false; 
    } 
    return bln; 
  }; 
  //获取MAP中所有VALUE的数组(ARRAY) 
  this.values = function() { 
    var arr = new Array(); 
    for (i = 0; i < this.elements.length; i++) { 
      arr.push(this.elements[i].value); 
    } 
    return arr; 
  }; 
  //获取MAP中所有KEY的数组(ARRAY) 
  this.keys = function() { 
    var arr = new Array(); 
    for (i = 0; i < this.elements.length; i++) { 
      arr.push(this.elements[i].key); 
    } 
    return arr; 
  }; 
}

总结

以上所述是小编给大家介绍的 Javacript中自定义的map.js  的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
js兼容标准的表格变色效果
Jun 28 Javascript
Javascript Math对象
Aug 13 Javascript
33个优秀的jQuery 教程分享(幻灯片、动画菜单)
Jul 08 Javascript
HTML Color Picker(js拾色器效果)
Aug 27 Javascript
javascript dom追加内容实现示例
Sep 21 Javascript
JavaScript常用脚本汇总(二)
Mar 04 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
超赞的动手创建JavaScript框架的详细教程
Jun 30 Javascript
jquery不常用方法汇总
Jul 26 Javascript
详解微信小程序审核不通过的解决方法
Jan 17 Javascript
layui select动态添加option的实例
Mar 07 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
Sep 23 Javascript
css和js实现弹出登录居中界面完整代码
Nov 26 #Javascript
js 判断一个数字是不是2的n次方幂的实例
Nov 26 #Javascript
微信小程序wx.request实现后台数据交互功能分析
Nov 25 #Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 #Javascript
zTree节点文字过多的处理方法
Nov 24 #Javascript
JavaScript程序设计高级算法之动态规划实例分析
Nov 24 #Javascript
详解vue-cli脚手架build目录中的dev-server.js配置文件
Nov 24 #Javascript
You might like
咖啡与牛奶
2021/03/03 冲泡冲煮
一个PHP+MSSQL分页的例子
2006/10/09 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
php 根据url自动生成缩略图并处理高并发问题
2014/01/23 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
php常用字符函数实例小结
2016/12/29 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
JavaScript Array扩展实现代码
2009/10/14 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
基于dropdown.js实现的两款美观大气的二级导航菜单
2015/09/02 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
老生常谈原生JS执行环境与作用域
2016/11/22 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
微信小程序中如何使用flyio封装网络请求
2019/07/03 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
python基于xml parse实现解析cdatasection数据
2014/09/30 Python
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
Python实现注册、登录小程序功能
2018/09/21 Python
python对象与json相互转换的方法
2019/05/07 Python
解决python中使用PYQT时中文乱码问题
2019/06/17 Python
python 杀死自身进程的实现方法
2019/07/01 Python
python socket 聊天室实例代码详解
2019/11/14 Python
Python库skimage绘制二值图像代码实例
2020/04/10 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
校园创业策划书
2014/01/14 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP