多语言展示
当前在线:1139今日阅读:84今日分享:32

AS3基础教程-第18课-Array数组(4)

本节课介绍Array类型内的 slice() 方法 和 splice() 方法
工具/原料

flashCS6

一、slice()方法
1

书写格式:slice(A, B)说明:A与B是原数组的索引。该方法返回一个字符串,该字符串包括从索引A代表的元素一直到索引B代表的元素(但不包括B代表的元素)之间的所有字符。本操作不修改原数组。

2

举例:var myarray:Array=new Array(98,73,10,85,3); var myarray1:Array = myarray.slice(0,3); //从原数组的0位置(98)开始,直到3位置(85,但是不包括85)为止trace(myarray1); //输出结果是:98,73,10var myarray2:Array = myarray.slice(1,4); //从原数组的1位置(73)开始,直到4位置(3,但是不包括3)为止trace(myarray2); //输出结果是:73,10,85

3

注意:如果slice(A, B)方法内的参数A(或者B)是一个负数,则起始点(或者终点)从字符串的结尾处向前 数数 确定。其中-1表示最后一个元素。见下例

4

var my_str:String = 'WangYuFeifEI';//共有12个字符//下面两行代码用于输出第一个字符trace('slice(0,1): '+my_str.slice(0, 1)); //输出: slice(0,1): Wtrace('slice(-12,1): '+my_str.slice(-12, 1)); //输出: slice(-12,1):  W//下面两行代码用于输出中间四个字符trace('slice(4,8): '+my_str.slice(4, 8)); //输出:slice(1,4): YuFetrace('slice(4,-4): '+my_str.slice(4, -4)); //输出:slice(1,-1): YuFe//下面三行代码输出均为空。因为索引A的位置没有保证在索引B的前面trace('slice(1,1): '+my_str.slice(1, 1)); //输出slice(1,1):trace('slice(3,2): '+my_str.slice(3, 2)); //输出slice(3,2):trace('slice(-2,2): '+my_str.slice(-2, 2)); //输出slice(-2,2)://下面两行代码,省略了参数B,那么系统认为B的值为字符串的长度(本例是12)trace('slice(0): '+my_str.slice(0)); // slice(0): WangYuFeifEItrace('slice(4): '+my_str.slice(4)); // slice(4): YuFeifEI

二、splice()方法
1

书写格式:splice(A, [B], [C])说明:定位到数组的索引A处,开始删除B个元素。同时,在删除的元素的位置处插入C元素。此方法会直接修改被操作的数组而不会不制作副本。 补充说明:①参数A是原数组的索引,是一个整数。A一般用正整数比较容易理解,当然,A也可以是一个负整数,用来指定相对于数组结尾的位置(例如,-1 是数组的最后一个元素)。②参数B [可选] 是一个非负整数,它指定要删除的元素数量。该数量包括A参数中定位的元素。如果没有为B参数指定值,则该方法将删除从A元素到数组中最后一个元素之间的所有值。如果该参数的值为0,则不删除任何元素。③参数C [可选] 是指定要在A参数中定位的插入点处插入到数组中的值。

2

var myarray:Array=new Array(16,28,34,46,25); myarray.splice(1); trace(myarray); //输出结果为:16本例在splice()方法中只用了一个参数1(就是我们所说的A),这是指:定位到索引是1的元素(28)的位置,进行删除、插入操作。第二个参数(B)未设置,则将删除从第1个参数(就是数组在索引值为1的位置的元素,也就是元素28)开始的所有元素(包括元素28)。第三个参数(C)未设置则不插入新元素。所以执行后数组中就只剩下第0号元素了。

3

var myarray:Array=new Array(16,28,34,46,25); myarray.splice(1,2); //从索引为1的位置(包括索引1位置的元素)开始删除两个元素trace(myarray); //输出结果是:16,46,25

4

var myarray:Array=new Array(16,28,34,46,25); myarray.splice(3,0,61,32,44); //从索引为3的位置开始删除0个元素,并在删除的位置上插入三个新元素61 32 44trace(myarray); //输出结果是:16,28,34,61,32,44,46,25注意该例,原数组索引3的位置,元素是46;参数B指定的是0,所以不删除数据;参数C可以有多个,用逗号隔开,用来在数组后面继续添加新元素。注意,不是从元素46之后加入新元素,而是从元素46之前加入新元素

5

var myarray:Array=new Array(16,28,34,46,25); trace(myarray.splice(1,3));//输出:28,34,46也就是说,splice有返回值,返回的就是删除掉的所有元素。大家可以将splice(1,3)修改为splice(1,0)看看效果,来验证这个结论

推荐信息