zoukankan      html  css  js  c++  java
  • javascript实现的Hashtable

     <SCRIPT LANGUAGE="JavaScript"> 
      
    <!-- 
            
    function HashTable() 
            
    {         
                    
    this.Items=[]; 
                    
    this.Count=function(){return this.Items.length;};        //长度                 
                    this.DictionaryEntry=function(key,value) 
                    

                            
    this.Key=key||null
                            
    this.Value=value||null
                    }
     
                    
    this.Add=function(key,value){this.Items.push(new this.DictionaryEntry(key,value));} 
                    
    this.Clear=function(){this.Items.length=0;} 
                    
    this.Remove=function(key) 
                    

                            
    var index=this.GetIndexWithKey(key); 
                            
    if(index>-1)
                                
    this.Items.splice(index,1); 
                    }
     
                    
    this.GetValue=function(key) 
                    

                            
    var index=this.GetIndexWithKey(key); 
                            
    if(index>-1)
                                
    return this.Items[index].Value; 
                    }
     
                    
    this.ContainsKey=function(key) 
                    

                            
    if(this.GetIndexWithKey(key)>-1)
                                
    return true
                            
    return false
                    }
     
                    
    this.ContainsValue=function(value) 
                    

                            
    if(this.GetIndexWithValue(value)>-1)
                                
    return true
                            
    return false
                    }
     
                    
    this.Keys=function() 
                    

                            
    var iLen=this.Count(); 
                            
    var resultArr=[]; 
                            
    for(var i=0;i<iLen;i++)
                                resultArr.push(
    this.Items[i].Key); 
                            
    return resultArr; 
                    }
     
                    
    this.Values=function() 
                    

                            
    var iLen=this.Count(); 
                            
    var resultArr=[]; 
                            
    for(var i=0;i<iLen;i++
                                resultArr.push(
    this.Items[i].Value); 
                            
    return resultArr; 
                    }
     
                    
    this.IsEmpty=function(){return this.Count()==0;} 
                    
    this.GetIndexWithKey=function(key) 
                    

                            
    var iLen=this.Count(); 
                            
    for(var i=0;i<iLen;i++)
                                
    if(this.Items[i].Key===key)
                                    
    return i; 
                            
    return -1
                    }
     
                    
    this.GetIndexWithValue=function(value) 
                    

                            
    var iLen=this.Count(); 
                            
    for(var i=0;i<iLen;i++)
                                
    if(this.Items[i].Value===value)
                                    
    return i; 
                            
    return -1
                    }
     
            }
     
           
            
    var my=new HashTable(); 
            my.Add(
    "name","blueKnight"); 
            my.Add(
    "age",'24'); 
            my.Add(
    "sex","boy"); 
            alert(my.Count());
            alert(my.ContainsValue(
    "boy"));
            alert(my.GetValue(
    "name"))
            
    for(var i in my.Items) 
            

                 alert(
    "Key:"+my.Items[i].Key+"--Value:"+my.Items[i].Value); 
            }
     
            my.Remove(
    "age"); 
            alert(my.Keys()
    +'-'+my.Values()+'\n\r');         
      
    //--> 
      </SCRIPT> 
    原主体部分摘自于网络。
    本人对原js中存在的部分bug进行了修正。
  • 相关阅读:
    centos7 安装mysql
    ketlle windows下的安装(最基本)
    Spark参数详解 一(Spark1.6)
    SSM项目集成Lucene+IKAnalyzer在Junit单元测试中执行异常
    解决jquery.pjax加载后的异常滚动
    码云项目克隆至github
    JFinal获取多个model
    避免layui form表单重复触发submit绑定事件
    解决pjax重复绑定
    jfinal 拦截器中判断是否为pjax请求
  • 原文地址:https://www.cnblogs.com/ding0910/p/1106599.html
Copyright © 2011-2022 走看看