//三个方法扩展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>