• js 操作map对象


    转自:http://smallvq123.javaeye.com/blog/823923

    /*
    * Map对象,实现Map功能
    *
    *
    * size() 获取Map元素个数
    * isEmpty() 判断Map是否为空
    * clear() 删除Map所有元素
    * put(key, value) 向Map中增加元素(key, value) 
    * remove(key) 删除指定key的元素,成功返回true,失败返回false
    * get(key) 获取指定key的元素值value,失败返回null
    * element(index) 获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null
    * containsKey(key) 判断Map中是否含有指定key的元素
    * containsValue(value) 判断Map中是否含有指定value的元素
    * keys() 获取Map中所有key的数组(array)
    * values() 获取Map中所有value的数组(array)
    *
    */
    function Map(){
    this.elements = new Array();
     
    //获取Map元素个数
    this.size = function() {
      return this.elements.length;
    },

    //判断Map是否为空
    this.isEmpty = function() {
    return (this.elements.length < 1);
    },

    //删除Map所有元素
    this.clear = function() {
    this.elements = new Array();
    },

    //向Map中增加元素(key, value) 
    this.put = function(_key, _value) {
    if (this.containsKey(_key) == true) {
    if(this.containsValue(_value)){
    if(this.remove(_key) == true){
    this.elements.push( {
    key : _key,
    value : _value
    });
    }
    }else{
    this.elements.push( {
    key : _key,
    value : _value
    });
    }
    } else {
    this.elements.push( {
    key : _key,
    value : _value
    });
    }
    },

    //删除指定key的元素,成功返回true,失败返回false
    this.remove = function(_key) {
    var bln = false;
    try {  
    for (i = 0; i < this.elements.length; i++) {  
    if (this.elements[i].key == _key){
    this.elements.splice(i, 1);
    return true;
    }
    }
    }catch(e){
    bln = false;  
    }
    return bln;
    },

    //获取指定key的元素值value,失败返回null
    this.get = function(_key) {
    try{  
    for (i = 0; i < this.elements.length; i++) {
    if (this.elements[i].key == _key) {
    return this.elements[i].value;
    }
    }
    }catch(e) {
    return null;  
    }
    },

    //获取指定索引的元素(使用element.key,element.value获取key和value),失败返回null
    this.element = function(_index) {
    if (_index < 0 || _index >= this.elements.length){
    return null;
    }
    return this.elements[_index];
    },

    //判断Map中是否含有指定key的元素
    this.containsKey = function(_key) {
    var bln = false;
    try {
    for (i = 0; i < this.elements.length; i++) {  
    if (this.elements[i].key == _key){
    bln = true;
    }
    }
    }catch(e) {
    bln = false;  
    }
    return bln;
    },
       
    //判断Map中是否含有指定value的元素
    this.containsValue = function(_value) {
    var bln = false;
    try {
    for (i = 0; i < this.elements.length; i++) {  
    if (this.elements[i].value == _value){
    bln = true;
    }
    }
    }catch(e) {
    bln = false;  
    }
    return bln;
    },
     
    //获取Map中所有key的数组(array)
    this.keys = function() {
    var arr = new Array();
    for (i = 0; i < this.elements.length; i++) {  
    arr.push(this.elements[i].key);
    }
    return arr;
    },

    //获取Map中所有value的数组(array)
    this.values = function() {
    var arr = new Array();
    for (i = 0; i < this.elements.length; i++) {  
    arr.push(this.elements[i].value);
    }
    return arr;
    };

    }

  • 相关阅读:
    读取手机联络人实例
    MotionEvent中getX()和getRawX()的区别
    Android开源项目发现--- 效率开发工具篇(持续更新)
    开发资源收藏
    ViewHolder VS HolderView ?
    如何测试 Android 中的定时事件
    性能优化实例
    lamba
    并行操作多个序列map
    连续处理函数reduce
  • 原文地址:https://www.cnblogs.com/honglihome/p/3459866.html
Copyright © 2020-2023  润新知