文档章节

javaScript之map

大号没有了
 大号没有了
发布于 2016/03/21 14:06
字数 261
阅读 5
收藏 0
/**
 * Simple Map
 * 
 * 
 * var m = new Map(); m.put('key','value'); ... var s = "";
 * m.each(function(key,value,index){ s += index+":"+ key+"="+value+"/n"; });
 * alert(s);
 * 
 * @author dewitt
 * @date 2008-05-24
 */
function Map() {
 /** 存放键的数组(遍历用到) */
 this.keys = new Array();
 /** 存放数据 */
 this.data = new Object();
 /**
  * 放入一个键值对
  * 
  * @param {String}
  *            key
  * @param {Object}
  *            value
  */
 this.put = function(key, value) {
  if (this.data[key] == null) {
   this.keys.push(key);
  }
  this.data[key] = value;
 };
 /**
  * 获取某键对应的值
  * 
  * @param {String}
  *            key
  * @return {Object} value
  */
 this.get = function(key) {
  return this.data[key];
 };
 /**
  * 删除一个键值对
  * 
  * @param {String}
  *            key
  */
 this.remove = function(key) {
  this.keys.remove(key);
  this.data[key] = null;
 };
 /**
  * 遍历Map,执行处理函数
  * 
  * @param {Function}
  *            回调函数 function(key,value,index){..}
  */
 this.each = function(fn) {
  if (typeof fn != 'function') {
   return;
  }
  var len = this.keys.length;
  for ( var i = 0; i < len; i++) {
   var k = this.keys[i];
   fn(k, this.data[k], i);
  }
 };
 /**
  * 获取键值数组(类似Java的entrySet())
  * 
  * @return 键值对象{key,value}的数组
  */
 this.entrys = function() {
  var len = this.keys.length;
  var entrys = new Array(len);
  for ( var i = 0; i < len; i++) {
   entrys[i] = {
    key : this.keys[i],
    value : this.data[i]
   };
  }
  return entrys;
 };
 /**
  * 判断Map是否为空
  */
 this.isEmpty = function() {
  return this.keys.length == 0;
 };
 /**
  * 获取键值对数量
  */
 this.size = function() {
  return this.keys.length;
 };
 /**
  * 重写toString
  */
 this.toString = function() {
  var s = "{";
  for ( var i = 0; i < this.keys.length; i++, s += ',') {
   var k = this.keys[i];
   s += k + "=" + this.data[k];
  }
  s += "}";
  return s;
 };
}

本文转载自:http://blog.csdn.net/niu870781892/article/details/5479515

大号没有了
粉丝 2
博文 64
码字总数 6228
作品 0
合肥
私信 提问
ArcGIS API for Javascript 2.X 离线部署(以2.6为例)

先在官网上ArcGIS API for JavaScript download page(需要有账户)下载最新的API:arcgisjsv26_api.zip( 点击直接下载)和 SDK: arcgisjsv26_sdk.zip(直接下载); 2. 将下载下来的 arcg...

回忆在昨天
2012/10/24
298
0
javascript source map 的使用

之前发现VS.NET会为压缩的js文添加一个与文件名同名的.map文件,一直没有搞懂他是用来做什么的,直接删除掉运行时浏览器又会报错,后来google了一直才真正搞懂了这个小小的map文件背后的巨大...

粒子数反转
2018/10/18
14
0
[JavaScript]-Array构造的数组使用map为何失效?

[示例] 假设你需要生成一个从0到99的数组。你要怎么做呢?下面是一种解法: 看到这种使用传统的for循环的方式会有点不大习惯。事实上,各种高阶函数,像forEach, map, filter, reduce足以写出...

xiaoLoo
2018/06/27
24
0
SL API 与 JS API的交互

我们知道,Siverlight 作为 浏览器的一个插件,就相当于程序的容器,那么我们怎样和Html 中的JS 代码交互呢,其实微软给我们了解决方案. 参考文章http://www.cnblogs.com/HellenTian/archive...

长平狐
2012/11/28
403
0
如何实现JavaScript的Map和Filter函数?

译者按: 鲁迅曾经说过,学习JavaScript最好方式莫过于敲代码了! 原文: Master Map & Filter, Javascript’s Most Powerful Array Functions 译者: Fundebug 为了保证可读性,本文采用意译而非...

Fundebug
2017/07/26
16
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
700
10
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
39
0
spring cloud

一、从面试题入手 1.1、什么事微服务 1.2、微服务之间如何独立通讯的 1.3、springCloud和Dubbo有哪些区别 1.通信机制:DUbbo基于RPC远程过程调用;微服务cloud基于http restFUL API 1.4、spr...

榴莲黑芝麻糊
今天
25
0
Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
昨天
74
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
昨天
73
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部