(1)利用splice方法实现:
splice() ---用于插入、删除或替换数组的元素。返回含有被删除的元素的数组。
arrayObject.splice(index,howmany,element1,.....,elementX)
<script language="javascript" type="text/javascript"> Array.prototype.elremove = function(m){ if(isNaN(m)||m>this.length){return false;} this.splice(m,1); } b = ['1','2','3','4','5']; alert("elements: "+b+"nLength: "+b.length); b.elremove(1); //删除下标为1的元素 alert("elements: "+b+"nLength: "+b.length); </script>
*这种方式数组长度相应改变,但是原来的数组索引也相应改变。splice参数中第一个参数1,是删除的起始索引(从0算起),在此是数组第二个元素;第二个参数1,是删除元素的个数,在此只删除一个元素;此时遍历数组元素可以用普通遍历数组的方式,比如for,因为删除的元素在数组中并不保留。
(2)利用slice和concat方法实现:
concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
这里就是返回this.slice(0,n)/this.slice(n+1,this.length)组成的新数组,这中间,刚好少了第n项。
slice方法: 返回一个数组的一段,两个参数,分别指定开始和结束的位置。
<script language="javascript" type="text/javascript"> Array.prototype.del=function(n) { //n表示第几项,从0开始算起。 if(n<0) //如果n<0,则不进行任何操作。 return this; else return this.slice(0,n).concat(this.slice(n+1,this.length)); } var test=new Array(0,1,2,3,4,5); test=test.del(3); //从0算起,这里也就是删除第4项。 alert(test); </script>
http://www.cnblogs.com/qiantuwuliang/archive/2010/09/01/1814706.html