自己写的一个javascript map类

众所周之,js是没有Map类的,要想用还得自己封装一个。

 代码如下 复制代码

(function(win) {
    var Map = function() {
        this.count = 0;
        this.entrySet = {};
    };

    var proto = Map.prototype;

    proto.size = function() {
        return this.count;
    };

    proto.isEmpty = function() {
        return this.count === 0;
    };

    proto.containsKey = function(key) {
        if (this.isEmpty()) {
            return false;
        }

        for ( var prop in this.entrySet) {
            if (prop === key) {
                return true;
            }
        }

        return false;
    };

    proto.containsValue = function(value) {
        if (this.isEmpty()) {
            return false;
        }

        for ( var key in this.entrySet) {
            if (this.entrySet[key] === value) {
                return true;
            }
        }

        return false;
    };

    proto.get = function(key) {
        if (this.isEmpty()) {
            return null;
        }

        if (this.containsKey(key)) {
            return this.entrySet[key];
        }

        return null;
    };

    proto.put = function(key, value) {
        this.entrySet[key] = value;
        this.count++;
    };

    proto.remove = function(key) {
        if (this.containsKey(key)) {
            delete this.entrySet[key];
            this.count--;
        }
    };

    proto.putAll = function(map) {
        for ( var key in map.entrySet) {
            this.put(key, map.entrySet[key]);
        }
    };

    proto.clear = function() {
        for ( var key in this.entrySet) {
            this.remove(key);
        }
    };

    proto.values = function() {
        var result = [];

        for ( var key in this.entrySet) {
            result.push(this.entrySet[key]);
        }

        return result;
    };

    proto.keySet = function() {
        var result = [];

        for ( var key in this.entrySet) {
            result.push(key);
        }

        return result;
    };

    proto.toString = function() {
        var result = [];
        for ( var key in this.entrySet) {
            result.push(key + ":" + this.entrySet[key]);
        }

        return "{" + result.join() + "}";
    };

    proto.valueOf = function() {
        return this.toString();
    };

    win.Map = Map;
})(window);

时间: 2024-09-23 20:46:08

自己写的一个javascript map类的相关文章

以下我写的一个javascript的web worker,但不知道为什么没数据返回了.

问题描述 以下我写的一个javascript的web worker,但不知道为什么没数据返回了. <!DOCTYPE html> function post(){ var wo1=new Worker("wroker1.js"); var a=document.getElementById("input"); wo1.postMessage(a.value); wo1.onmessage=function(event){ document.getElem

用PHP写的一个HTTP下载类

在php中,下载http资源比较常用的一种做法就是用 file_get_contents 这个函数,但这函数无法获得http头的信息,会给一些应用带来不方便,因此我写了一个http下载类来解决这个问题,测试感觉速度和file_get_contents相差无几. <? class DedeHttpDown { var $m_url = ""; var $m_urlpath = ""; var $m_scheme = "http"; var $

用java写的一个文件操作类包

前几天仔细看了看java的I/O操作,呵呵.就写了一个操作文件的类包,功能有创建文件或目录,删除文件或目录,复制文件或目录,移动文件或目录,设置文件或目录属性,查看文件或目录大小.呵呵,功能比较简单,源代码为: 创建: Java代码 package fileOperation; import java.io.File; import java.io.FileOutputStream; /** * @author wakin * */ public class Create { /**根据字符串生

Auntion-TableSort国人写的一个javascript表格排序的东西_javascript技巧

Auntion-TableSort最新版 修复了一个数字排序的问题.放出下载 07年5月5日 Auntion TableSort 测试交流第一版 (下一版将会存在部分表格相关特效) ----------------------------------------------------------------------------- 作者:Auntion blog:Auntion.blogbus.com e-mail:Auntion@Gmail.com QQ:82874972 --------

我写了一个javascript函数在javaweb标签a的onclick事件中调用为什么不执行

问题描述 <%@pagelanguage="java"import="java.util.*"pageEncoding="gbk"%><html><head><scriptsrc="javascript/leftmenu.js"type="text/javascript"></script><linkhref="CSS2/leftm

创建一个ASP分页类(一)文章部分

创建|分页 创建一个ASP通用分页类 平波 从开始学习到使用ASP到现在也写了不少程序了,最令人头痛的是写数据分页,每次都是由于几个变量名或几个参数的不同,因而需要每次都写哪一段冗长而又繁杂的分页代码,代码长了使得程序的可读性变差,容易出差,调试半天也找不出错在哪里,所以慢慢的我开始使用一些网上的提供的分页函数或分页类.的确省事不少,但是通常的函数和类的做法都是就数据显示部分也封装了起来,每次为了达到自己需要的显求效果要去改动函数或者类的本身,所以使用起来也不是怎么方便,自己写的分页改起来已经够

flex-写了一个as的类,运行的时候总是提示 Context3D不可用,网上的方法也不行

问题描述 写了一个as的类,运行的时候总是提示 Context3D不可用,网上的方法也不行 解决方案 网上说在XX-app.xml里面加一句gpu,可是我没有这个文件啊,新手求助啊 解决方案二: 写了一个Tip类(AS)

一个简单的JavaScript Map实例(分享)_javascript技巧

用js写了一个Map,带遍历功能,请大家点评下啦. //map.js 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 = ""; *

利用反射自己写的一个ModelHelper类

开发中 很多人都会使用BLL Model这种开发,我也是,虽然现在有很多的自动生成工具,能在几秒内生成cs的模板,但我个人还不是很喜欢,我还是喜欢自己一个一个去写,这样更能了解自己的代码. 不过手动编写的时候,最讨厌的就是GetModel这类方法了,把datarow的数据转换成一个Model,实在写的我头疼,因为很多代码基本上都是一样的,一直想用反射来写这样一个方法,以后只要调用一个方法就能完成Model的赋值,那样就方便了.今天又遇到此类代码了,一时火大,自己写了个方法,采用的反射的原理(从B