当前位置:首页 > 日记 > 正文

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

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

 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  的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

js canvas实现简单的图像扩散效果

js canvas实现简单的图像扩散效果

图像,效果,简单,电脑软件,js,本文实例为大家分享了canvas实现简单图像扩散的代码,供大家参考,具体内容如下<!DOCTYPE HTML> <html> <body> <canvas id="myCanvas" width="800" height="800" style="border:1px solid #c3c3c3;"> You…

浅析bootstrap原理及优缺点

浅析bootstrap原理及优缺点

优缺点,原理,电脑软件,bootstrap,网格系统的实现原理,是通过定义容器大小,平分12份(也有平分成24份或32份,但12份是最常见的),再调整内外边距,最后结合媒体查询,就制作出了强大的响应式网格系统。Bootstrap框架中的网格系统就是将容器平分成12份…

WPS如何给表格添加底纹颜色

WPS如何给表格添加底纹颜色

步骤,底纹,表格,颜色,电脑软件,  单一颜色的表格显得很不好看,只有添加上一些比较醒目的颜色,这个表格才会显得好看许多,那么小编教你怎么给表格添加底纹颜色吧。WPS给表格添加底纹颜色的步骤打开WPS表格,选择要替换颜色的表格WPS给表格添加…

PS怎么制作一个漂亮的渐变背景?

PS怎么制作一个漂亮的渐变背景?

渐变,背景,漂亮,电脑软件,PS,渐变的颜色既不失去色彩的亮度,同时也避免了复杂的颜色混合在一起的混乱感,不失为一种很不错的选择。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、首先我们要将我们的ps…

php生成条形码的的实例详解

php生成条形码的的实例详解

条形码,详解,实例,电脑软件,php,php生成条形码的图片的实例详解因为用户的需要 写了一个条形码;用php生成一个条形码的图片 这个大家应该比我要好很多的吧,在自己项目的根目录下建立一个测试文件(直接把下面的代码放进去运行一下看看,我也是…

AngularJS中下拉框的高级用法示例

AngularJS中下拉框的高级用法示例

下拉框,示例,高级,电脑软件,AngularJS,本文实例讲述了AngularJS中下拉框的高级用法。分享给大家供大家参考,具体如下:HTML正文:<body ng-app="myApp"><!-- 对象内部属性遍历:x--key y---value --><div ng-controller="myctr01">{{sites}}<b…

JS中mouseup事件丢失的原因与解决

JS中mouseup事件丢失的原因与解决

事件,解决办法,原因,电脑软件,JS,前言当实现类似Excel选中区域的功能时,经常出现 mouseup 事件丢失的情况,由于缺少了 mouseup 事件,导致一个完整的操作无法进行。如果你是想进行拖拽移动操作,也可以参考本文。原因目前发现两个原因:触发了浏览…

ppt2013怎么设置幻灯片母版每一页

ppt2013怎么设置幻灯片母版每一页

设置,方法,幻灯片,标题,母版,  在使用office2013制作PPT时,设置母版可以减少工作量,当时不常用PPT的朋友不懂什么办?下面小编马上就告诉大家ppt2013设置幻灯片母版每一页相同标题的方法。ppt2013设置幻灯片母版每一页相同标题的方法PPT相同…

JS出现失效的情况总结

JS出现失效的情况总结

情况,失效,电脑软件,JS,对于大前端来说,JS可谓是我们的神器,从页面的效果到数据的传递,再到后台的业务,无处不充斥着JS的身影,但是万能的JS也有贪玩的时候,某一时刻你就有可能发现你形影不离的JS突然间罢工了,这对我们前端来说绝对是头痛的事,作为…

Photoshop如何后期调出室内人像照

Photoshop如何后期调出室内人像照

照片,人像,柔和,后期,室内,人像后期:打造冷淡柔和人像,在调色的过程中,我们重要的一部分就是要分析原片,看原片值得不值得修图,然后在朝着我们想要的效果来处理,本教程主要分为分析原片、整体调节、完善形体、皮肤修饰、光影重塑、和最终完善6个…

基于react框架使用的一些细节要点

基于react框架使用的一些细节要点

框架使用,要点,细节,电脑软件,react,这篇文章主要是写关于学习react中的一些自己的思考:1.setState到底是同步的还是异步的?2.如何在子组件中改变父组件的state3.context的运用,避免“props传递地狱”4.组件类里有私有变量a,它到底改放在this.a…

word怎么设置页码

word怎么设置页码

设置,页码,电脑软件,word,一篇文章由多页组成,为了便于按序排列与查看,希望每页都有页码。使用word可以快速地为文档添加页码。下面小编就以office 2013word为例,具体操作步骤如下:1、切换到功能区中的&ldquo;插入&rdquo;选项卡,在&ldquo;页眉和…