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进行了修正。
  • 相关阅读:
    JS 中的require 和 import 区别
    DIV为空时占据空间的解决办法
    学习Web标准不要对IE抱有偏见
    JspSmartUpload上传常见问题解析
    Windows下JSP开发环境的配置
    Div CSS网页布局:用class组合实现
    WEB2.0标准教程:如何应用WEB标准改善现有网站?
    高效整洁CSS代码原则【转载】
    51Test.NET-input标签写CSS时需要注意一些
    程序员应该怎么做呢?【转载】
  • 原文地址:https://www.cnblogs.com/ding0910/p/1106599.html
Copyright © 2011-2022 走看看