删除数组元素

   javascript通过设置数组的length属性来截断数组是惟一一种缩短数组长度的方法.如果使用delete运算符来删除数组中元素,虽然那个元素变成未定义的,但是数组的length属性并不改变两种删除元素,数组长度也改变的方法.

 <script>
  /*
  *  方法:Array.remove(dx)
  *  功能:删除数组元素.
  *  参数:dx删除元素的下标.
  *  返回:在原数组上修改数组
  */

 //经常用的是通过遍历,重构数组.
 Array.prototype.remove=function(dx)
 {
   if(isNaN(dx)||dx>this.length){return false;}
   for(var i=0,n=0;i<this.length;i++)
   {
       if(this!=this[dx])
       {
           this[n++]=this
       }
   }
   this.length-=1
 }
 a = ['1','2','3','4','5'];
 alert("elements: "+a+"\nLength: "+a.length);
 a.remove(0); //删除下标为0的元素
 alert("elements: "+a+"\nLength: "+a.length);

/*
  *  方法:Array.baoremove(dx)
  *  功能:删除数组元素.
  *  参数:dx删除元素的下标.
  *  返回:在原数组上修改数组.
  */

 //我们也可以用splice来实现.

 Array.prototype.baoremove = function(dx)
 {
   if(isNaN(dx)||dx>this.length){return false;}
   this.splice(dx,1);
 }
 b = ['1','2','3','4','5'];
 alert("elements: "+b+"\nLength: "+b.length);
 b.baoremove(1); //删除下标为1的元素
 alert("elements: "+b+"\nLength: "+b.length);
 </script>
posted @ 2006-08-18 12:45  MSDI  阅读(292)  评论(0编辑  收藏  举报