总结两个Javascript的哈稀对象的一些编程技巧

1.双数组方法
< script type = " text/javascript " >
//  by Go_Rush(阿舜)  from http://ashun.cnblogs.com/
var  arrText = [ " 百度 " , " Google " , " 微软 " , " 博客园 " , " 阿舜的博客 " ];
var  arrUrl = [ " http://www.baidu.com/ " , " http://www.google.com/ " , " http://www.microsoft.com/ " , " http://www.cnblogs.com/ " , " http://ashun.cmblogs.com/ " ]

function  showUrl(element){     // 用双数组方法
     var  value = element.value;
    
for ( var  i = 0 ;i < arrText.length;i ++ ){
        
if  (arrText[i] === value)  return  alert(arrUrl[i])
    }
}
</ script >

2. 二维数组方法
< script type = " text/javascript " >
//  by Go_Rush(阿舜)  from http://ashun.cnblogs.com/
var  arr = [
    [
" 百度 "             , " http://www.baidu.com/ " ],
    [
" Google "         , " http://www.google.com/ " ],
    [
" 微软 "             , " http://www.microsoft.com/ " ],
    [
" 博客园 "         , " http://www.cnblogs.com/ " ],
    [
" 阿舜的博客 "     , " http://ashun.cmblogs.com/ " ]
];

function  showUrl(element){     // 用二维数组方法
     var  value = element.value;
    
for ( var  i = 0 ;i < arr.length;i ++ ){
        
if  (arr[i][ 0 ] === value)  return  alert(arr[i][ 1 ])
    }
}
</ script >

以上两种方法借用数组作为数据结构,实现了程序要求的功能,而且为以后的扩展,变动做好了充分的准备
但是,效率呢? 每次都要遍历数组,每次都要判断。。。。

下面,我来介绍一种不用数组,不用循环遍历,也不要判断比较的方法。
先来一段:
< script type = " text/javascript " >
//  by Go_Rush(阿舜)  from http://ashun.cnblogs.com/
var  hash = {
    
" 百度 "             : " http://www.baidu.com/ " ,
    
" Google "         : " http://www.google.com/ " ,
    
" 微软 "             : " http://www.microsoft.com/ " ,
    
" 博客园 "         : " http://www.cnblogs.com/ " ,
    
" 阿舜的博客 "     : " http://ashun.cmblogs.com/ "
};

function  showUrl(element){     // 使用哈稀对象
    alert(hash[element.value])
}
</ script >
 

你可能感兴趣的:(JavaScript)