admin管理员组

文章数量:1530517

2024年5月12日发(作者:)

Action Script 3.0 搜索数组中的元素

用ActionScript编写的程序在执行过程中,可能需要访问数组中匹配指定值的元素,

这就需要对数组中所有的元素进行搜索。搜索和遍历的不同在于,遍历的目的是为了访问

整个数组中每一个元素,而搜索则是有针对性地访问某个符合要求的元素。

在ActionScript中,搜索数组中的元素需要使用到类Array中的indexOf()和lastIndexOf()

两种方法。indexOf()方法的作用是从索引号为0的元素开始,搜索数组中是否包含某个元

素。该方法有两个参数,分别为searchElement和fromIndex。

 searchElement参数

该参数可以为任意类型的变量。定义该参数的值后,indexOf()方法即可搜索某个数组

中是否包含与该参数值相等的元素。

 fromIndex参数

该参数的作用是定义搜索数组元素的起始索引号。其值为int类型变量,默认值为0。

indexOf()方法可以返回int类型的变量值。如在数组中搜索到与searchElement参数相

等的元素,则返回该元素的索引号。否则将返回-1。

例如,在一个包含20以内所有平方数的数组中,查找是否包含数值169,如下所示。

var SquareNumber:Array=new Array(),i:int,m:int;//声明并创建函数SquareNumber

for (i=1; i<=20; i++) {//创建关于i的循环

m=i*i;//求出i的平方值

SquareNumber [i-1]=m;//将i的平方值定义为数组的元素

}

trace(f(169,0));

执行上面的代码,即可使indexOf()方法返回数组SquareNumber中是否包含169。通

过使用indexOf()方法,可以制作一些查找数组元素的实例。例如,数组aa包含所有清华

电脑学堂出版的图书,用户输入图书的名称,即可了解图书是否为清华电脑学堂系列教材,

其代码如下所示。

stop();//暂停播放

faultContextMenu=false;

//屏蔽右键菜单

e=false;

//隐藏输出时的动态文本组件

ntListener(,enterbutton);

//监听确定按钮的鼠标事件

function enterbutton(event:MouseEvent) {

//声明按钮事件触发的函数

e=false;

//鼠标事件隐藏输入图书名称的组件

var bookname:String=;

//为输入图书名称的文本框组件赋值

e=true;

//显示输出的动态文本组件

var booklist:Array=new Array();

//声明图书名称的数组

booklist[1]="3DS MAX 2008中文版标准教程";

booklist[2]="3DS MAX 7三维造型与动画制作标准教程";

//…………

booklist[125]="中文版Photoshop和CorelDRAW平面创意设计实践教程";

//为数组添加元素

if (f(bookname,0)!=-1) {

//通过indexOf方法判断输入的图书名称是否属于数组元件

="感谢您的购买,这本书属于《清华电脑学堂》丛书";

//如果是,则输出这段文本到动态文本组件中

} else {//否则

="非常抱歉,这本书并不属于本丛书";

//输出这段文本到动态文本组件中

}

}

将代码添加到动画中,即可输入图书的名称,并查找其是否属于数组中的元素,如图

5-4所示。

输入已收录的图书名称 单击【查找】按钮返回文本

输入未收录的图书名称 单击【查找】按钮返回文本

图5-4 图书查询实例

indexOf()方法可以从索引号为0的元素开始检索任何数组中的元素,找出符合要求的

元素并返回索引号。除了indexOf()的方法外,ActionScript还支持用lastIndexOf()方法从索

引号最大的元素开始,以和indexOf()方法完全相反的方向检索数组中的元素,找出符合要

求的元素并返回索引号。

lastIndexOf()方法的使用与indexOf()相同,但有可能因数组元素的重复而返回不同的

值。例如,分别用indexOf()和lastIndexOf()两种方法在数组[a,d,o,b,e,f,l,a,s,h]中检索元素a,

如下所示。

var char:Array=new Array("a","d","o","b","e","f","l","a","s","h");

//声明一个由10个字符串变量组成的数组

trace ("从前往后进行检索得出的结果,第"+f("a")+"个元素为a");

//从索引号为0的元素开始检索

trace ("从后往前进行检索得出的结果,第"+dexOf("a")+"个元素为a");

//从索引号最大的元素开始检索

通过执行上面的代码,可以反映出indexOf()方法和lastIndexOf()方法的区别,如下所

示。

从前往后进行检索得出的结果,第0个元素为a

从后往前进行检索得出的结果,第7个元素为a

本文标签: 数组元素图书搜索名称