Javascript实现Map结构

说明:

    1.put(key) //添加一个kv

    2.get(key) //得到一个kv

    3.remove(key) //删除一个kv

    4.size() //Map的大小 return int

    5.isEmpty() //是否为空

    6.keys() //得到所有的Key ,return Array()

    7.values() // 得到所有的Value ,return Array()


function Map(){

    var __struct__ = function(key,value){
        this.key = key;
        this.value = value;
    }

    var __map__  = new Array();


    this.put = function(key,value){
        for (var i = 0; i < __map__.length ; i++){
            if(__map__[i].key === key){
                __map__[i].value = value;
                return;
            }
        }

        __map__[__map__.length] = new __struct__(key,value);
    }

    this.get = function(key){
        for(var i=0; i<__map__.length;i++){
            if(__map__[i].key === key){
                return __map__[i].value;
            }
        }
        return null;
    }


    this.remove = function(key){
        for(var i=0; i<__map__.length;i++){
            if(__map__[i].key === key){
                var index = 0;
                if (i > 0){
                    index = i-1
                }
                __map__ = __map__.splice(index,1)
                return ;
            }
        }
        return ;
    }

    this.size = function(){
        return __map__.length
    }

    this.isEmpty = function(){
        return __map__ <= 0
    }

    this.keys = function(){
        var keys = [];
        for(var i=0; i<__map__.length;i++){
                keys[i] = __map__[i].key;
        }
        return keys
    }

    this.values = function(){
        var values = [];
        for(var i=0; i<__map__.length;i++){
                values[i] = __map__[i].value;
        }
        return values
    }
}


实例:

1.创建一个Map对象

var map = new Map();

 2.在 map 对象里添加一个数据 
 

> map.put('1','a');
> map.put('2','b');
> map.put('3','c');

 3.这个map的大小 
 

> map.size();
  3
3.获取 key = 1 的数据

> map.get('1');
  "a"

4.删除 key = 1 的数据

> map.remove('1');
> map.szie();
   2

5.查看map对象是否空

> map.isEmpty();
   false
6.得到所有的key

> map.keys();
  ["2", "3"]
7.得到所有的values

> map.values();
  ["b","c"]


你可能感兴趣的:(JavaScript,开发,编码,开源代码)