从数组中移除元素

ZDNet软件频道 时间:2004-02-10 作者:ZDNet China |  我要评论()
本文关键词:
当试图从数组中间移除元素,删除看上去是一个很好的解决办法。但是,当把这个方法使用在数组元素的时候,简单的删除只能删掉元素的内容,但是数组的空间仍旧保留,没有删除。
本文译自Builder.com,未经许可请勿转载

当试图从数组中间移除元素,删除看上去是一个很好的解决办法。但是,当把这个方法使用在数组元素的时候,简单的删除只能删掉元素的内容,但是数组的空间仍旧保留,没有删除。

如果需要移除的元素位于数组的开头或者结尾部分,你可以分别使用shift和pop来移除它们。使用功能函数splice可以移除数组中处于中间部分的元素,在删除元素的同时删除其所占用的空间。

使用splice函数的时候,传递所要修改的数组、开始的地方、删除的个数。例如,下面这个程序用于删除所有小于等于3个字符的元素:

@array = qw(now is the time for all good men to come to the aid of their country);

print "Before: @array ";

for ($i = 0; $i < @array; $i++)

{

    splice(@array, $i, 1) and $i-- if (length $array[$i] <= 3);

}

print "After: @array ";

程序的输出结果如下:

Before: now is the time for all good men to come to the aid of their country

After: time good come their country

当功能函数splice移除元素的时候,它把其它的数组中的元素前移(注意:我们在每次运行for语句删除元素的时候,都需要备份,这样我们就不会遗漏任何的元素)

功能函数splice是一个删除数组中间元素的简单方法。



责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134