解惑

解己之惑,解人之惑

JavaScript中的HashMap

JavaScript是没有HashMap的标准实现的,但是我们可以使用Object的特性完成HashMap的功能,例如:

  var divRequestMap = new Object();
  function ajax_loaddiv_get(url,divId)                                                            
  {
    if(divRequestMap[divId] != null)
    {
          abortRequest(divRequestMap[divId]);
    }
    var req = createrequest();
    divRequestMap[divId]=req;
    …
  }

从上面的代码我们看到可以直接将字符串做为数组下标使用,这个和HashMap中使用字符串做为关键字存取内容是类似的,但是不足的是没有HashMap的对于主键和值集合进行遍历的方法。
如果要一个功能全面的HashMap也很简单,网上有很多标准实现
推荐一个简单的实现,也可以直接下载封装好的JS文件

(Visited 331 times, 1 visits today)

2 Comments

  1. 刚看到你的站 :)

    其实divRequestMap 是一个对象,并不是一个数组,divRequestMap[’字符串’]里的字符串是这个对象的一个属性,并不是数组下标。遍历对象的属性用这种方式:
    for( prop in divRequestMap)
    {
    value = divRequestMap[prop ];
    }

  2. 呵呵,早说啊,害得我另外用了一个数组保存主键。我的意思是类似数组下标的用法,perl语言里面有类似的特性。

发表评论

邮箱地址不会被公开。 必填项已用*标注

© 2024 解惑

本主题由Anders Noren提供向上 ↑