首页 > 语言 > JavaScript > 正文

JS删除数组元素的函数介绍

2024-05-06 14:19:05
字体:
来源:转载
供稿:网友

split将字符串转为数组并输出的代码:

代码如下:
<script language="javascript">   
function spli(){   
         datastr="2,2,3,5,6,6";      
  var str= new Array();  
  str=datastr.split(",");      
    for (i=0;i<str.length ;i++ )   
    {   
        document.write(str[i]+"<br/>");   
    }   
}   
spli();   
</script> 

js删除数组元素:

var arr=['a','b','c'];
若要删除其中的'b',有两种方法:

1.delete方法:delete arr[1]

这种方式数组长度不变,此时arr[1]变为undefined了,但是也有好处原来数组的索引也保持不变,此时要遍历数组元素可以才用

代码如下:
for(index in arr)
{
   document.write('arr['+index+']='+arr[index]);
}


这种遍历方式跳过其中undefined的元素

* 该方式IE4.o以后都支持了

2.数组对象splice方法:arr.splice(1,1);

这种方式数组长度相应改变,但是原来的数组索引也相应改变
splice参数中第一个1,是删除的起始索引(从0算起),在此是数组第二个元素
第二个1,是删除元素的个数,在此只删除一个元素,即'b';
此时遍历数组元素可以用普通遍历数组的方式,比如for,因为删除的元素在
数组中并不保留

* 该方法IE5.5以后才支持

值得一提的是splice方法在删除数组元素的同时,还可以新增入数组元素
比如arr.splice(1,1,'d','e'),d,e两个元素就被加入数组arr了
结果数组变成arr:'a','d','e','c'

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

  /*
  * 方法: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[i]!=this[dx])
    {
      this[n++]=this[i]
    }
  }
  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)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选