Rumah >hujung hadapan web >tutorial js >在JavaScript中实现自己的Map对象

在JavaScript中实现自己的Map对象

高洛峰
高洛峰asal
2016-11-25 14:12:421345semak imbas

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();

        };

    }

 

 

 

二、创建Map对象

 

var m=new Map();

 

m.put("id","1000");

 

m.put("name","张三");

 

 

 

三、运用 www.2cto.com

 

 

 


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn