三个方法扩展Array删除功能

来源:互联网 发布:传奇3数据库详解 编辑:程序博客网 时间:2024/06/05 04:47

//三个方法扩展Array删除功能

<SCRIPT language='JavaScript' type='text/JavaScript'>

//删掉某index的元素

Array.prototype.getDesc=function(){
 var sss="";
 if( this instanceof Array){
  sss="length="+this.length +"/n";
  for(oo in this){
   if( !(this[oo] instanceof Function)){
    sss+="["+ oo +"]="+ this[oo] +"/n";
   }
  }
 }
 return sss;
}

Array.prototype.remove=function(dx){
 if(isNaN(dx)||dx>this.length){
  return false;
 }else{
  for(var i=0,n=0;i<this.length;i++){
   if(this[i]!=this[dx])this[n++]=this[i];
  }
  this.length-=1;
 }
}

//清除未定义元素
Array.prototype.pack=function(){
 var ptr=0;
 for(var i=0;i<this.length;i++){
  if(this[i]!=undefined){
   if(i>ptr){
    this[ptr]=this[i];
    delete(this[i]);
   }
   ptr++;
  }
 }
 this.length=ptr;
}

//按传入的判断函数,清除元素

Array.prototype.packByCondition=function(fCondition){
 var ptr=0;
 var of;
 if( fCondition instanceof Function ){
  of=fCondition;
 }else{
  of=function(x){return x==undefined;};
 }
 for(var i=0;i<this.length;i++){
  //if(this[i]!=undefined){
  if( ! of(this[i]) ){
   if(i>ptr){
    this[ptr]=this[i];
    delete(this[i]);
   }
   ptr++;
  }
 }
 this.length=ptr;
}

 </script>

原创粉丝点击