zoukankan      html  css  js  c++  java
  • js下的map数据对象构建


    mapUtil = function(){
    this.map = new Array();
    };

    mapUtil.prototype = {
    //Update or Insert
    add : function(key, value){
    for (var i = 0; i < this.map.length; i++)
    {
    if ( this.map[i].key+"" === key+"" )
    {
    this.map[i].value = value;
    return;
    }
    }

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

    this.map[this.map.length] = new struct(key, value);
    },
    //Query
    get : function(key){
    for (var i = 0; i < this.map.length; i++)
    {
    if ( this.map[i].key+"" == key +"")
    {
    return this.map[i].value;
    }
    }

    return undefined;
    },
    getKeyByIndex : function(index){
    if(index >= 0 && index < this.map.length){
    return this.map[index].key;
    }

    return null;
    },
    getByIndex : function(index){
    if(index >= 0 && index < this.map.length){
    return this.map[index].value;
    }

    return null;
    },
    getIndexByKey:function(key){
    for (var i = 0; i < this.map.length; i++)
    {
    if ( this.map[i].key+"" === key +"")
    {
    return i;
    }
    }
    },
    //Delete
    remove : function(key){
    var v;
    var len = this.map.length;
    for (var i = 0; i < len; ++i)
    {
    v = this.map.pop();
    if ( v.key === key ){
    continue;
    }

    this.map.unshift(v);
    }
    },
    removeByIndex : function(index){
    var v;
    var len = this.map.length;
    for (var i = 0; i < len; i++)
    {
    v = this.map.shift();
    if ( i === index ){
    continue;
    }

    this.map.push(v);
    }
    },

    //clear
    clear : function(){
    this.map.splice(0, this.map.length);
    },
    removeAll : function(){
    this.map.splice(0, this.map.length);
    },

    size: function(){
    return this.map.length;
    },

    isEmpty : function(){
    return (this.map.length <= 0);
    },
    toString:function(){
    var v="";
    for (var i = 0; i < this.map.length; i++){
    v+=this.map[i].key+":"+this.map[i].value+";"
    }
    return v;
    }
    };

    //模拟<key, value>数据结构
    function struct(key, value){
    this.key = key;
    this.value = value;
    };

  • 相关阅读:
    2020.4.21 考试T1 HDU 5729
    BZOJ 4198: [Noi2015]荷马史诗
    BZOJ 1052: [HAOI2007]覆盖问题
    BZOJ 1087: [SCOI2005]互不侵犯King
    BZOJ 4466 线性函数
    Linux如何挂载U盘
    集中式日志分析平台
    ELK5.2+kafka+zookeeper+filebeat集群部署
    浅析ES的_source、_all、store、index
    IndexOf、LastIndexOf、Substring的用法
  • 原文地址:https://www.cnblogs.com/emmalai/p/5541808.html
Copyright © 2011-2022 走看看