admin管理员组文章数量:1530842
2024年5月12日发(作者:)
ActionScript编程 创建数组副本
作用:
创建一个与指定数组完全相同的新数组,而且该数组并非只是指向原有数组的引用。
说明:
使用Array类的concact()方法和slice()方法可以查询数组中的信息,并返回一个新数
组。
concat()方法的作用是将参数中指定的元素与数组中的元素连接,并返回新的数组。如
果这些参数指定了一个数组,则将连接该数组中的元素。concat()使用方法如下所示。
var newArray:Array = (... args);
...args参数表示要连接到新数组中的任意数据类型的值(如数字、元素或字符串)。如
果未传递任何值,则新数组将是原始数组的副本。执行该程序后将返回一个新的数组,其
中包含此数组中的元素,后跟参数中的元素。
slice()方法可以返回由原有数组中某一范围的元素构成的新数组,而不修改原有数组。
返回的数组包括startIndex元素以及从其开始到endIndex元素(但不包括该元素)的所有
元素。slice()使用方法如下所示。
var newArray:Array = (startIndex,endIndex);
slice()方法具有两个名为startIndex和endIndex的参数,介绍如下所示。
startIndex 一个数字,指定片段起始点的索引。如果startIndex是负数,则起始点从数组的结
尾开始,其中-1指的是最后一个元素。
endIndex 一个数字,指定片段终点的索引。如果省略此参数,则片段包括数组中从开头到结
尾的所有元素。如果endIndex是负数,则终点从数组的结尾指定,其中-1指的是最后一个元
素。
如果没有传递任何参数,则创建原有数组的一个副本。另外需要注意的是,endIndex
处的元素不包括在返回值中。
示例:
如果想要对数组的副本进行操作,而非原有内容,可以使用concat()复制数据的副本,
而和原有数组完全无关。例如,myArray数组中包含有3个元素(a,b,c),然后复制该
数组为newArray新数组。当改变newArray数组中的元素时,myArray数组中的元素保持
不变,如下所示。
var myArray:Array = new Array("sun","moon","star");
var newArray:Array = ();
trace(myArray);
//输出sun,moon,star
trace(newArray);
//输出sun,moon,star
newArray = ["wind","rain","snow"]
trace(myArray);
//输出sun,moon,star
trace(newArray);
//输出wind,rain,snow
从上面的示例可以看出,复制的数组独立副本与原有数组无关联。修改其中任意一个
数组,均不会影响到另外一个数组。
上面的示例是复制一个与原有数组完全的新数组,但在实际操作中往往只需要使用原
有数组中的部分元素,这样就需要使用slice()方法。例如,myArray数组中包含有5个元
素(a,b,c,d,e),使用slice()方法获取该数组中索引位置1至3的元素,并创建一个
新的数组,如下所示。
var myArray:Array = new Array("a", "b", "c", "d", "e");
var newArray:Array = (1,4);
//获取索引1至4的元素,返回值不包含索引4中的元素
trace(myArray);
//输出a,b,c,d,e
trace(newArray);
//输出b,c,d
在上例中如果对slice()方法只传递第一个参数startIndex,则会从索引1位置开始向后
获取所有元素,直至最后一个元素,这样的返回值中将包含有最后一个元素,如下所示。
var myArray:Array = new Array("a", "b", "c", "d", "e");
var newArray:Array = (1);
//获取索引1位置以后的所有元素
trace(myArray);
//输出a,b,c,d,e
trace(newArray);
//输出b,c,d,e
上面的两个示例都是以正向的序列,传递范围的起始索引位置和结束索引位置。其实,
如果对slice()方法中传递负数参数,则可以以倒数的某个索引为起始位置向后获取,这样
对包含有较多元素的数组来说非常方便。例如在上例中的slice()方法中传递一个-2参数,
可以直接获取数组中的最后2个元素,如下所示。
var myArray:Array = new Array("a", "b", "c", "d", "e");
var newArray:Array = (-2);
//获取索引1位置以后的所有元素
trace(myArray);
//输出a,b,c,d,e
trace(newArray);
//输出d,e
版权声明:本文标题:ActionScript编程 创建数组副本 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1715485767a454575.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论