在JavaScript中实现自己的Map对象

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 02:21 点击:

 

HashMap在程序设计中,具有无可替代的重要作用。它提供m.put(key,value); m.get(key);之类的数据存储及读取方式,非常方便。但在JavaScript(HTML4.0的版本) 中,并没有提供这样的一种对象。以下这段代码用于创建Map对象,我已使用多年,效果良好,供需要的朋友参考。

 

 

 

一、Map源代码

 

 

    /**  Map is a general map object for storing key value pairs

     *  @param m - default set of properties

     */

var Map =function(m) {

        var map;

        if (typeof m == 'undefined') map = new Array();

        else map = m;

       

        /**

         * Get a list of the keys to check

         */

        this.keys = function() {

            var _keys = new Array();

            for (var _i in map){

                _keys.push(_i);

            }

            return _keys;//

        };

        /**

         * Put stores the value in the table

         * @param key the index in the table where the value will be stored

         * @param value the value to be stored

         */

        this.put = function(key,value) {

            map[key] = value;

        };

        /**

         * Return the value stored in the table

         * @param key the index of the value to retrieve

         */

        this.get = function(key) {

            return map[key];

        };

        /**

         * Remove the value from the table

         * @param key the index of the value to be removed

         */

        this.remove =  function(key) {

            map[key]=null;

            delete map[key];

        };

        /**

         *  Clear the table

         */

        this.clear = function() {

            delete map;

            map = new Array();

       

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Gb2312转utf-8编码的方法(vbs+js)
      • 如何使用Ajax技术开发Web应用程序(1)
      • js跳转路径问题
      • JavaScript模仿桌面窗口
      • 用js检测两个线段是否相交
      • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
      • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
      • 我是如何去了解jquery的(六),案例之幻灯片轮换
      • Jquery封装幻灯片效果
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1