日期:2014-05-16  浏览次数:20501 次

js-从array中删除一个元素

(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

?


?