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;
    };

  • 相关阅读:
    JSON的使用总结
    pc端分页插件的使用
    简单修改选择文件样式
    H5中的本地存储
    H5中的 meta 标签及 移动页面单位
    1001. A+B Format (20)
    查看mysql的注册表路径
    win10 64位安装mysql
    [POLITICS] S Korea lawmakers vote to impeach leader
    5-17 Hashing (25分)
  • 原文地址:https://www.cnblogs.com/emmalai/p/5541808.html
Copyright © 2011-2022 走看看