js hashMap
- /**
- * MAP对象,实现MAP功能
- *
- * 接口:
- * size() 获取MAP元素个数
- * isEmpty() 判断MAP是否为空
- * clear() 删除MAP所有元素
- * put(key, value) 向MAP中增加元素(key, value)
- * remove(key) 删除指定KEY的元素,成功返回True,失败返回False
- * get(key) 获取指定KEY的元素值VALUE,失败返回NULL
- * element(index) 获取指定索引的元素(使用element.key,element.value获取KEY和VALUE),失败返回NULL
- * containsKey(key) 判断MAP中是否含有指定KEY的元素
- * containsValue(value) 判断MAP中是否含有指定VALUE的元素
- * values() 获取MAP中所有VALUE的数组(ARRAY)
- * keys() 获取MAP中所有KEY的数组(ARRAY)
- *
- * 例子:
- * var map = new Map();
- *
- * map.put("key", "value");
- * var val = map.get("key")
- * ……
- *
- */
- function hashmap() {
- /**
- * 存放数据
- */
- this.data = new Object();
- /**
- * 放入一个键值对
- * @param {String} key
- * @param {Object} value
- */
- this.put = function(key, value)
- {
- this.data[key] = value;
- };
- /**
- * 获取某键对应的值
- * @param {String} key
- * @return {Object} value
- */
- this.get = function(key)
- {
- return this.containsKey(key)?this.data[key]:null;
- };
- /**
- * 删除一个键值对
- * @param {String} key
- */
- this.remove = function(key)
- {
- delete this.data[key];
- };
- /**
- * 遍历Map,执行处理函数
- *
- * @param {Function} 回调函数 function(key,value,index){..}
- */
- this.each = function(fn){
- if(typeof fn != 'function')
- {
- return;
- }
- var len = this.data.length;
- for(var i=0;i<len;i++)
- {
- var k = this.data[i];
- fn(k,this.data[k],i);
- }
- };
- /**
- * 获取键值数组(类似Java的entrySet())
- * @return 键值对象{key,value}的数组
- */
- this.entrys = function()
- {
- var len = this.data.length;
- var entrys = new Array(len);
- for (var i = 0; i < len; i++) {
- entrys[i] = {
- key : i,
- value : this.data[i]
- };
- }
- return entrys;
- };
- /**
- * 判断Map是否为空
- */
- this.isEmpty = function()
- {
- return this.data.length == 0;
- };
- /**
- * 获取键值对数量
- */
- this.size = function()
- {
- return this.data.length;
- };
- /**
- * 重写toString ,装成JSON格式
- */
- this.toString = function()
- {
- var s = "[";
- for(var i=0;i<this.data.length;i++,s+=','){
- var k = this.data[i];
- s += "{'id':'" + k+"','value':'"+this.data[k]+"'}";
- }
- s=s.substring(0, s.length-1);
- if(s!=""){
- s+="]";
- }
- return s;
- };
- /**
- * 输出Value的值
- */
- this.values = function (){
- var _values= new Array();
- for(var key in this.data)
- {
- _values.push(this.data[key]);
- }
- return _values;
- };
- /**
- * 获取keys
- */
- this.keySet = function (){
- var _keys = new Array();
- for(var key in this.data)
- {
- _keys.push(key);
- }
- return _keys;
- };
- /**
- * 判断MAP中是否含有指定KEY的元素
- */
- this.containsKey = function(_key)
- {
- return (_key in this.data);
- };
- /**
- * 清空Map
- */
- this.clear = function(){
- this.data.length = 0;
- this.data = new Object();
- };
- }
js hashMap的更多相关文章
- JS hashMap实例详解
链接:http://www.jb51.net/article/85111.htm JS hashMap实例详解 作者:囧侠 字体:[增加 减小] 类型:转载 时间:2016-05-26我要评论 这篇文 ...
- JS实现HashMap
/** * ********* 操作实例 ************** * var map = new HashMap(); * map.put("key1","Valu ...
- js数组,数字函数,字符串函数,表单验证,hashMap,堆栈,日期函数,call函数
1.javascript的数组API Js代码 收藏代码 //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.lengt ...
- js写的一个HashMap
1.脚本 /** * 模拟HashMap */ function HashMap(){ //定义长度 var length = 0; //创建一个对象 var obj = new Object(); ...
- 学习Redis你必须了解的数据结构——HashMap实现
本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文链接博客园蜗牛 cnblogs.com\tdws . 首先提供一种获取hashCode的方法,是一种比较受欢迎的方式,该方法参照了一位园友的 ...
- 微信调用照相拍照等 js 接口的权限配置 和 照片上传和下载实现
直接上代码: 1. 前端调试代码: <html> <head> <meta http-equiv="Content-Type" content=&qu ...
- 微信JS SDK配置授权,实现分享接口
微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...
- Android—android与js交互以及相互传参
Android中可以通过WebView来实现与js的交互,让用户可以在android客户端看到js写的页面,接下来为大家介绍的就是怎样实现此功能: 首先android项目目录下有“assets”文件夹 ...
- 使用ajaxfileupload.js实现文件上传
ajaxFileUpload是一个异步上传文件的jQuery插件 语法:$.ajaxFileUpload([options]) options参数说明: 1.url 上传处理程序地址. 2,file ...
随机推荐
- oracle to_date函数(转载)
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- poj 2892 Tunnel Warfare(线段树)
Tunnel Warfare Time Limit: 1000MS Memory Limit: 131072K Total Submissions: 7499 Accepted: 3096 D ...
- Mysql常用操作记录
在linux平台中相关的MySql操作 打开Mysql mysql -uroot -p //-u后边为用户名,-p后边为密码 1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql& ...
- Esper系列(九)NamedWindow语法create、Insert、select
功能:用于存储一种或多种类型的事件的集合,并能对所存储的事件进行增删改查操作. CreateNameWindow 根据已有的数据源构造 格式: 1 [context context_name] 2 ...
- Got error creating database manager: java.io.IOException解决方法
14/03/26 23:03:55 ERROR tool.BaseSqoopTool: Got error creating database manager: java.io.IOException ...
- HW5.13
public class Solution { public static void main(String[] args) { System.out.printf("%s\t%s\n&qu ...
- ZOJ-2362 Beloved Sons 贪心 | KM
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2362 裸的匹配问题,直接KM,就算是O(n^4)的KM也不会超. ...
- Scala IDE for Eclipse的下载、安装和WordCount的初步使用(本地模式和集群模式)
包括: Scala IDE for Eclipse的下载 Scala IDE for Eclipse的安装 本地模式或集群模式 我们知道,对于开发而言,IDE是有很多个选择的版本.如我们大部分人经常 ...
- A Tour of Go Variables with initializers
A var declaration can include initializers, one per variable. If an initializer is present, the type ...
- DATASNAP倒底能承受多大的负载能力
DATASNAP是针对企业数据中间件市场而推出来的产品,如果在其它领域用它可能就不会合适. DATASNAP通信使用INDY10,INDY是阻塞型SOCKET. 1.如果使用TCP/IP长连接,DAT ...