精通Flex 3.0――4.5.2 向Array中插入和删除元素

  Array提供了多种方法插入和删除元素。通过这些方法,可以快速按需要操作Array中的元素。Array类提供了一对方法pushpop方法,使得Array类实现了栈的结构。push方法可以将元素插入到Array的尾部。pop方法删除Array最尾部的元素。这样就实现了一个先进后出的栈结构。实现代码如下所示。

var flexArray:Array=new Array();

flexArray.push(“Adobe”);                                                                     //添加元素“Adobe”到Array的尾部

trace(flexArray);                                                                                    //输出“Adobe

flexArray.push(“Macromedia”);                                                          //添加元素“Macromedia”到Array的尾部

trace(flexArray);                                                                                    //输出“AdobeMacromeida

flexArray.push(“Flex”);                                                                         //添加元素“Flex”到Array的尾部

trace(flexArray);                                                                                    //输出“AdobeMacromeidaFlex

flexArray.pop();                                                                                     //删除Array尾部元素

trace(flexArray);                                                                                    //输出“AdobeMacromeida

flexArray.pop();                                                                                     //删除Array尾部元素

trace(flexArray);                                                                                    //输出“Adobe

flexArray.pop();                                                                                     //删除Array尾部元素

trace(flexArray);                                                                                     //输出“

由上面的代码可以看出,通过pushpop方法可以用一个Array类的一个实例构建一个栈的数据结构。通过这样的数据结构,可以实现更为复杂的算法。

Array类也提供了一组shiftunshift的方法向Array的实例添加元素和删除元素。与pushpop不同,unshift添加方式是在Array实例的头部添加元素。而shift方法是从Array类实例的头部开始删除元素。如下代码所示。

var flexArray:Array=new Array();

flexArray. unshift (“Adobe”);                                                                //添加元素“Adobe”到Array的头部

trace(flexArray);                                                                                    //输出“Adobe

flexArray. unshift (“Macromedia”);                                                     //添加元素“Macromedia”到Array的头部

trace(flexArray);                                                                                    //输出“Macromeida Adobe

flexArray. unshift (“Flex”);                                                                    //添加元素“Flex”到Array的头部

trace(flexArray);                                                                                    //输出“Flex Macromeida Adobe

flexArray. shift ();                                                                                   //删除Array头部元素

trace(flexArray);                                                                                    //输出“Macromeida Adobe

flexArray. shift ();                                                                                   //删除Array头部元素

trace(flexArray);                                                                                    //输出“Adobe

flexArray. shift ();                                                                                   //删除Array头部元素

trace(flexArray);                                                                                    //输出“

除了上面提到的这几种顺序的插入和删除Array元素的方法外,Array类还提供了一个方法splice用来通过指定位置添加或者删除元素。splice方法使用的方式如下代码所示。

var flexArray:Array=[“Adobe”,”Flex”];

flexArray.splice(1,0,”Maromedia”);     //删除从索引位置1开始的0个元素,添加”Maromedia”到实例中

trace(flexArray);                                      //输出“AdobeMacromeidaFlex

flexArray.splice(1,1);                             //删除从索引位置1开始的1个元素

trace(flexArray);                                      //输出“AdobeFlex

flexArray.splice(1,1,”Flex3”);                //删除从索引位置1开始的1个元素,添加” Flex3”到实例中

trace(flexArray);                                      //输出“AdobeFlex3

splice方法有两个整型参数。第一个整型参数用来指定操作元素的索引位置。第二个整型参数指定删除元素的个数,如果为0那么是不删除元素的。如果存在第三个参数,则表示进行完删除后插入的元素。这样通过splice就可以一次完成指定位置先删除后插入的替换操作。

在使用Array类实例的过程中可以通过delete关键字进行删除操作。通过delete关键字进行删除时不改变Array的长度。访问被删除元素返回undefined类型。使用方法如下所示。

var flexArray:Array=[“Adobe”,”Macromedia”,”Flex”];

delete(flexArray[1]);                                                  //删除索引位置为1的元素

trace(flexArray);                                                        //输出““Adobe,,Flex”

trace(flexArray[1]);                                                    //输出“undefined

trace(flexArray.length);                                            //输出3

减小Array实例的长度定义也会删除新长度定义之外的元素。如下代码所示。

var flexArray=[“Adobe”,”Macromedia”,”Flex”];

flexArray.length=2;                                                   //改变Array长度的定义

trace(flexArray);                                                        //输出“AdobeMacromedia

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值