js中Map之基本用法分开单独写方法,当做类库使用
来源:互联网 发布:80c51单片机引脚功能 编辑:程序博客网 时间:2024/05/21 07:14
Array.prototype.remove = function(s) {
for (var i = 0; i < this.length; i++) {
if (s == this[i])
this.splice(i, 1);
}
}
/**
* 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;
};
}
function testMap(){
var m = new Map();
m.put('key1','Comtop');
m.put('key2','南方电网');
m.put('key3','景新花园');
alert("init:"+m);
m.put('key1','康拓普');
alert("set key1:"+m);
m.remove("key2");
alert("remove key2: "+m);
var s ="";
m.each(function(key,value,index){
s += index+":"+ key+"="+value+"/n";
});
alert(s);
}
0 0
- js中Map之基本用法分开单独写方法,当做类库使用
- js中Map之基本用法
- js中Map之基本用法
- 【Map使用】Map基本方法
- c++之map 基本用法
- C++使用: C++中map的基本操作和用法
- STL之Map:Map的基本用法
- JS之map用法初探
- 无聊写了个抓网页js中链接,当做个笔记
- partial class 在ORM中使用局部类,可以自动生成的代码和自己写的代码分开
- 【Java之容器】1.Map基本用法
- C++中map的基本用法
- STL 中map 容器的基本用法
- C++中Map的基本用法
- 在单独js文件中使用EL表达式的方式
- 使用js仿写jquery中$.ajax()方法
- js中map函数的用法
- Asp.net 中使用单独类文件
- 面向对象的三个基本特征(讲解)
- MediaPlayerError (1,-110)的问题
- 【LeetCode】-Best Time to Buy and Sell Stock II
- 你对我的信任,是我自己毁掉的
- 数据库命名规范--通用
- js中Map之基本用法分开单独写方法,当做类库使用
- 谈内存对齐
- UIView Key-frame Animations
- aws 上选择 linux 版本后面的 HVM 和 PV 有什么区别?
- 能看国内大学计算机各类视频的网站
- redmine 自動備份
- 分布式搜索Elasticsearch——创建客户端(二)
- Cocos2d-x教程(6)-粒子效果
- js 倒计时