注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

放飞自由

年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变。

 
 
 

日志

 
 

javascript中的map  

2011-05-14 00:25:46|  分类: WEB前端 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

    刚看到题目的时候感觉挺好奇的,javascript还可以有map听都没有听过,当看到这段代码段的时候真的被写这段代码的人折服,其实并没有在项目中用到javascript的map不过佩服作者的想法、思路,才体会到原来javascript也能疯狂,希望有一天也能写出这样的代码。

/**

* Make a map like java.

* You can use this map like this :
* var myMap = new Map();
* myMap.put("key","value");
* var key = myMap.get("key");
*/
function Map() {

this.elements = new Array();

this.size = function() {
return this.elements.length;
}

this.isEmpty = function() {
return (this.elements.length < 1);
}

this.clear = function() {
this.elements = new Array();
}

this.put = function(_key, _value) {
//alert('enter--------->_key=' + _key + ',_value=' + _value);
var bln = false;
try{
if(this.elements.length > 0){
for(i = 0 ; i < this.elements.length; i++){
if (this.elements[i].key == _key) { //如果原来数组中存在该key值
this.elements.splice(i, 1); //将数组中的原值删除
return true;
}
}
}

this.elements.push({key:_key, value:_value}); //无论是否存在相同的key值都要将新的值放入数组中
}catch(e){
bln = false;
}
return bln;
}

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

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

this.element = function(_index) {
if (_index < 0 || _index >= this.elements.length) {
return null;
}
return this.elements[_index];
}

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

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

this.values = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].value);
}
return arr;
}

this.keys = function() {
var arr = new Array();
for (i = 0; i < this.elements.length; i++) {
arr.push(this.elements[i].key);
}
return arr;
}
}

原文地址不记得了,如果哪天找到的话在加上吧,希望作者不要见怪呀
  评论这张
 
阅读(59)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017