AS3 数组

//创建空数组

var arr:Array = new Array();

// 创建数组时指定数组长度
var array:Array = new Array(elements);
//创建数组时加入多个元素
var array:Array = new Array(element0,...elementN);
直接用数组符号也可以创建一个数组,这是很简洁的方式创建数组:
var letters:Array = ["a", "b",“c”];

1.push( ) 方法在数组尾部添加元素,unshift( ) 方法在数组首部插入元素

2.利用for 循环来遍历数组,使用下标返回元素。

3.用for 语句和break 语句就能找到匹配的元素。另外用ArrayUtilities.findMatchIndex( ),
ArrayUtilities.findLastMatchIndex( ), 和ArrayUtilities.findMatchIndices( ) 方法

   用for循环查找第一个匹配的元素后,用break立即返回,这样就实现功能了。
break应该在if语句里进行判断,是否找到匹配元素,找到则执行break推出循环,否则继续查找。
var letters:Array = ["a", "b", "c", "d", "a", "b", "c", "d"];
// 指定要搜索的内容
var match:String = "b";
for (var i:int = 0; i < letters.length; i++) {
// 检测当前元素是否匹配
if (letters[i] == match) {
trace("Element with index " + i +
" found to match " + match);
break;
}
}
也可以找到匹配的最后一个元素,这就需要倒序遍历数组:
var letters:Array = ["a", "b", "c", "d", "a", "b", "c", "d"];
var match:String = "b";
for (var i:int = letters.length - 1; i >= 0; i--) {
if (letters[i] == match) {
trace("Element with index " + i +
" found to match " + match);
break;
}
}

使用自定义类ArrayUtilities 类更简单

import ascb.util.ArrayUtilities;

ArrayUtilities 类有三个方法来查找匹配的元素findMatchIndex( ), findLastMatchIndex( ), 和
findMatchIndices( )。

4.splice( ) 方法删除指定位置的元素,pop( ) 删除尾部元素,shift( ) 删除首部元素

删除指定位置的元素使用splice( ) 方法,它需要两个参数:
start
开始下标
deleteCount
删除的元素个数,如果没有定义,则从起始位置到末尾全部删除:

shift( ) 方法删除首部第一个元素,然后返回
该元素,pop( ) 方法删除尾部的元素并返回该值:

5.splice( ) 方法不仅可以删除元素,也可以插入元素,插入的元素放到第2个参数之后,当第2个
参数为0代表插入元素:

6.String 类的split( ) 方法把字符串转换为数组,但前提是字符串中含有统一的分割符,比如
Susan,Robert,Paula 字符串分割符为逗号
split( ) 方法接受两个参数:
分割符
用分割符来分割字符串,如果没定义,则把整个字符串作为数组的第一个元素
数量
分割出的最大元素个数,如果没定义,则全部放入数组。

7.ActionScript 提供内建的方法join( ) 可以快速把数组转换为字符串(数组中的元素不管什么类
型都将转换为字符串),该方法接受个参数作为分隔符:
var letters:Array = ["a", "b", "c"];
trace(letters.join("|")); // 显示: a|b|c
如果不指定分隔符,默认为逗号:
var letters:Array = ["a", "b", "c"];
trace(letters.join()); // 显示: a,b,c

8.使用concat( ) 方法或slice( ) 方法,另外还可以使用ArrayUtilities.duplicate( ) 方法,duplicate( )
方法可以创建递归复制

基本变量拷贝的是值
现在我们看看数组的操作,和上面的例子不同,两个变量实际上都指向了同一个数组存贮空间。
当letters 变量改变数组内容时,也影响到newLetters变量:

concat( ) 或slice( ) 方法复制一维整型下标的数组还可以,但是如果是多维的联合数组就不行
了,对于联合数组,不能使用concat( ) 或slice( ) 方法,对于多维数组,用concat( ) 或slice( )
只能复制顶层的数组,内部的就不能复制了

要想完全的复制数组,需要使用递归。ArrayUtilities.duplicate( ) 方法就是这样的做法,默认下
它也只复制一层数组,当第2个参数设为true时则是递归复制:

9.使用sort( ) 方法就可以对数组进行排序,没有参数是进行升序排序,对于字符内容采用
Unicode 编码排序
var words:Array = ["tricycle", "relative", "aardvark", "jargon"];
words.sort( );
trace(words); // 显示: aardvark,jargon,relative,tricycle
如果要进行降序排序,需要传递参数Array.DESCENDING 常量:
var words:Array = ["tricycle", "relative", "aardvark", "jargon"];
words.sort(Array.DESCENDING);
trace(words); // 显示: tricycle,relative,jargon,aardvark

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值