JavaScript数组的delete和splice

        在工作中遇到一个问题,在JavaScript的数组中delete一个数组元素时,用join("@@")连接成一个字符串时,发现被删除的那个元素是不存在了,但是该数组的长度并没有改变,原来是delete的那个元素变成了undefined的元素了。在此过程中我用了两种方法去遍历这个数组:for(var temp in array){alert(array[temp]);}和for(var temp=0;temp<array.length;temp++){alert(array[temp]);}
采用第一种方法不能alert出来被删除的元素(删除之后变成undefined),但是采用第二种方法就可以alert出来,发现第一种方式遍历时跳过了undefined的元素。

 

       但是采用splice方法进行删除时,不会出现上面的情况:数组对象splice方法:arr.splice(1,1);
这种方式数组长度相应改变,但是原来的数组索引也相应改变splice参数中第一个1,是删除的起始索引(从0算起),在此是数组第二个元素
第二个1,是删除元素的个数,在此只删除一个元素,即'b';此时遍历数组元素可以用普通遍历数组的方式,比如for,因为删除的元素在数组中并不保留。


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

 

 

可以测试代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值