天天看點

JavaScript中Array的prototype運用

<script>  
 /* 
  *  方法:Array.removeAt(Index) 
  *  功能:删除數組元素. 
  *  參數:Index删除元素的下标. 
  *  傳回:在原數組上修改數組 
  */ 
  
 Array.prototype.removeAt=function(Index) 
 { 
  if(isNaN(Index)||Index>this.length){return false;} 
  for(var i=0,n=0;i<this.length;i++) 
  { 
   if(this[i]!=this[Index]) 
   { 
       this[n++]=this[i] 
   } 
  } 
  this.length-=1 
 } 
              
 /*                             
  *  方法:Array.remove(obj)      
  *  功能:删除數組元素.         
  *  參數:要删除的對象.     
  *  傳回:在原數組上修改數組    
  */                            
                                
 Array.prototype.remove=function(obj) 
 { 
  if(null==obj){return;} 
  for(var i=0,n=0;i<this.length;i++) 
  { 
   if(this[i]!=obj) 
   { 
    this[n++]=this[i]; 
   } 
  } 
  this.length-=1 
 } 
  
 /*                             
  *  方法:Array.Contains(obj)      
  *  功能:确定某個元素是否在數組中.         
  *  參數:要查找的Object對象 
  *  傳回:找到傳回true,否則傳回false; 
  */                                                 
 Array.prototype.Contains=function(obj) 
 { 
  if(null==obj){return;} 
  for(var i=0,n=0;i<this.length;i++) 
  { 
   if(this[i]!=obj) 
   { 
    return true; 
   } 
  } 
   
  return false; 
 } 
  
  
 /*                             
  *  方法:Array.IndexOf(obj)      
  *  功能:搜尋指定的Object,并傳回第一個比對項從零開始的索引         
  *  參數:要查找的Object對象    
  *  傳回:找到傳回該元素在數組中的索引,否則傳回-1 
  */   
 Array.prototype.IndexOf=function(obj) 
 { 
  if(null==obj){return;} 
  { 
   for(var i=0,n=0;i<this.length;i++) 
   { 
    if(this[i]==obj) 
    { 
     return i; 
    } 
   }    
  } 
   
  return -1; 
 } 
  
 /*                             
  *  方法:Array.Clear()      
  *  功能:消空數組元素.         
  *  參數:無.     
  *  傳回:空數組 
  */   
 Array.prototype.Clear=function()                                    
 {                                                                   
  this.length=0;                                              
 }     
 
</script>        

在JavaScript中可以用prototype來擴充已有類增加自己的方法,在這裡提供對Array的擴充可減少許多工作量。

排序的做法:

<script type="text/javascript">

function sortNumber(a,b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))

</script>      
<script type="text/javascript">
var ay = [{id:1,name:"wxw1",num:1},{id:2,name:"wxw2",num:7},{id:3,name:"wxw3",num:5},{id:4,name:"wxw4",num:6}]
ay.sort(function(a,b){
    return a.num-b.num;
    })
for(var a in ay){
  alert(ay[a].id);    
}
</script>