AS3 - 数组Array的几个常用方法(附样例)

2015-03-30 10:39发布:hangge浏览:241

 
Flex/Flash开发中,经常会使用到数组,下面总结了一些数组的常用方法。

1,every()方法
检测是否数组所有元素都满足 callback 函数方法指定的条件。

语法:function every(callback:Function, thisObject:* = null):Boolean
参数:
callback:Function --检测函数
thisObject:* (default = null) --判断条件
返回:布尔值

1
2
3
4
5
6
7
8
9
10
protected function init(event:FlexEvent):void
{
    var arr1:Array = [124];
    var res1:Boolean = arr1.every(isNumeric);
    trace("isNumeric:", res1); // true
}
 
private function isNumeric(element:*, index:int, arr:Array):Boolean {
    return (element is Number);
}

2,filter 方法
根据 callback 方法指定的条件过滤数组,返回由符合条件的元素组成的新数组

语法:filter(callback:Function, thisObject:* = null):Array
参数:
callback:Function--检测函数
function callback(item:*, index:int, array:Array):void;
thisObject:* = null--判定条件
返回:数组

1
2
3
4
5
6
7
8
9
10
11
12
13
protected function init(event:FlexEvent):void
{
    var employees:Array new Array();//创建employees数组
    employees.push({name:"Employee 1", manager:false});//调用push函数添加二维元素
    employees.push({name:"Employee 2", manager:true});
    employees.push({name:"Employee 3", manager:false});
     
    var managers:Array = employees.filter(isManager);//调用挑选函数isManager
}
             
private function isManager(element:*, index:int, arr:Array):Boolean {
    return (element.manager == true);//返回判断布尔值
}

3,forEach方法
数组的每一个元素执行 callback 方法,不返回任何值

语法:forEach(callback:Function, thisObject:* = null):void 
参数:
callback:Function--执行函数
function callback(item:*, index:int, array:Array):void;
thisObject:* = null--执行范围

1
2
3
4
5
6
7
8
9
10
11
12
13
14
protected function init(event:FlexEvent):void
{
    var employees:Array new Array();//创建employees数组
    employees.push({name:"Employee 1", manager:false});//调用push函数添加二维元素
    employees.push({name:"Employee 2", manager:true});
    employees.push({name:"Employee 3", manager:false});
     
    trace(employees);//输出数组
    employees.forEach(traceEmployee);//调用执行函数traceEmployee
}
             
private function traceEmployee(element:*, index:int, arr:Array):void {
    trace(element.name + " (" + element.manager + ")");//输出:name (manager)
}

4,indexOf 方法
查找数组元素,若存在返回元素索引位置,若不存在返回-1

语法:indexOf(searchElement:*, fromIndex:int = 0):int 
参数:
searchElement:*--查找关键字
fromIndex:int = 0--查找开始索引位置(默认:0)
返回:数值

1
2
3
var arr:Array new Array(123,45,6789);//创建数组arr
var index2:int = arr.indexOf(123);//查寻123
trace(index2); // 0

5,lastIndexOf 方法
从最后一个索引位置向前查寻数组元素,若存在返回元素索引位置,若不存在返回-1

语法:lastIndexOf(searchElement:*, fromIndex:int = 0x7fffffff):int 
参数:
searchElement:*--查寻关键字
fromIndex:int = 0x7fffffff--索引开始位置(默认:0x7fffffff)
返回:数值

1
2
3
var arr:Array new Array(123,45,6789,123,984,323,123,32);
var index2:int = arr.lastIndexOf(123);
trace(index2); // 6

6,join 方法
将数组中的元素转换为字符串、在元素间插入指定的分隔符、连接这些元素然后返回结果字符串

join(sep:*):String 参数:
sep:*--插入分隔符
返回:字符串

1
2
var myArr:Array new Array("one""two""three");
var myStr:String = myArr.join(" and ");

7,map() 方法
数组的每一个元素执行 callback 方法,返回新数组

语法:map(callback:Function, thisObject:* = null):Array 
参数:
callback:Function--执行函数
thisObject:* = null--执行范围
返回:数组

1
2
3
4
5
6
7
8
9
protected function init(event:FlexEvent):void
{
    var arr:Array new Array("one""two""Three");
    var upperArr:Array = arr.map(toUpper);//创建upperArr数组并调用执行toUpper函数
}
             
private function toUpper(element:*, index:int, arr:Array):String {
    return String(element).toUpperCase();//小写转大字
}

8,pop 方法
删除数组中最后一个元素,并返回该元素的值。

语法:function pop():Object
返回:对象-- 指定的数组中最后一个元素的值。

1
2
var letters:Array new Array("a""b""c");
var letter:String = letters.pop();

9,shift 方法
删除数组中第一个元素,并返回该元素

语法:function shift():Object
返回:对象

1
2
var letters:Array new Array("a""b""c");
var firstLetter:String = letters.shift();

10,push 方法
将一个或多个元素添加到数组的结尾,并返回该数组的新长度。

语法:function push(... args):uint
参数:
... args-- 要追加到数组中的一个或多个值。
返回:新数组长度

1
2
3
var letters:Array new Array();
letters.push("a");
letters.push("b","c");

11,unshift 方法
将一个或多个元素添加到数组的开头,并返回该数组的新长度.

语法:function unshift(... args):uint
参数:
... args--一个或多个要插入到数组开头的数字、元素或变量。
返回:数值

1
2
3
4
5
6
7
var names:Array new Array();
names.push("Bill");
names.push("Jeff");
trace(names); // Bill,Jeff
names.unshift("Alfred");
names.unshift("Kyle");
trace(names); // Kyle,Alfred,Bill,Jeff

12,reverse 方法
在当前位置倒转数组

语法:function reverse():Array 
返回:数组

1
2
3
4
var letters:Array new Array("a""b""c");
trace(letters); // a,b,c
letters.reverse();
trace(letters); // c,b,a

13,slice 方法
返回由原始数组中某一范围的元素构成的新数组,而不修改原始数组。返回的数组包括 startIndex 元素以及从其开始到 endIndex 元素(但不包括该元素)的所有元素。
如果您没有传递任何参数,则创建原始数组的一个副本。

语法:function slice(startIndex:int = 0, endIndex:int = -1):
参数:
startIndex:int = 0--指定片段起始点索引的数字。如果 start 是负数,则起始点从数组的结尾开始,其中 -1 指的是最后一个元素
endIndex:int = -1--指定片段终点索引的数字。如果省略此参数,则片段包括数组中从开头到结尾的所有元素。如果 end 是负数,则终点从数组的结尾指定,其中 -1 指的是最后一个元素。
返回:数组

1
2
3
4
5
6
7
8
9
10
var letters:Array new Array("a""b""c""d""e""f");
var someLetters:Array = letters.slice(1,3);
trace(letters);     // a,b,c,d,e,f
trace(someLetters); // b,c
 
var someLetters2:Array = letters.slice(2);
trace(someLetters2); // c,d,e,f
 
var someLetters3:Array = letters.slice(-2);
trace(someLetters3); // e,f

14,some 方法
检测数组中是否有元素满足 callback 方法指定的条件。

语法:some(callback:Function, thisObject:* = null):Boolean 
参数:
callback:Function--执行函数
thisObject:* = null--执行范围
返回:布尔值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
protected function init(event:FlexEvent):void
{
    var arr:Array new Array();
    arr[0] = "one";
    arr[1] = "two";
    arr[3] = "four";
    var isUndef:Boolean = arr.some(isUndefined);//调用执行函数isUndefined
    if (isUndef) {
        trace("array contains undefined values: " + arr);
    else {
        trace("array contains no undefined values.");
    }
}
private function isUndefined(element:*, index:int, arr:Array):Boolean {
    return (element == undefined);
}

15,splice 方法
给数组添加元素以及从数组中删除元素。此方法会修改数组但不制作副本。

语法:function splice(startIndex:int, deleteCount:uint, ... values):Array
参数:
startIndex:int--一个整数,它指定插入或删除动作开始处的数组中元素的索引。您可以指定一个负整数来指定相对于数组结尾的位置(例如,-1 是数组的最后一个元素
deleteCount:uint--一个整数,它指定要删除的元素数量。该数量包括 startIndex 参数中指定的元素。如果没有为 deleteCount 参数指定值,则该方法将删除从 startIndex 元素到数组中最后一个元素之间的所有值。如果该参数的值为 0,则不删除任何元素。
... values--指定要在 startIndex 参数中指定的插入点处插入到数组中的值
返回:数组

1
2
3
4
5
6
7
8
9
10
var vegetables:Array new Array("spinach",
    "green pepper",
    "cilantro",
    "onion",
    "avocado");
var spliced:Array = vegetables.splice(22);
trace(vegetables); // spinach,green pepper,avocado
trace(spliced);    // cilantro,onion
vegetables.splice(10, spliced);
trace(vegetables); // spinach,cilantro,onion,green pepper,avocado

16,toString 方法
返回一个字符串值,该值表示所指定的 Array 对象中的元素。数组中的每一个元素(从索引 0 开始到最高索引结束)均会转换为一个连接字符串,并以逗号分隔。若要指定自定义的分隔符,请使用 Array.join() 方法。

语法:toString():String 
返回:字符串

1
2
3
4
5
6
7
var vegetables:Array new Array();
vegetables.push(1);
vegetables.push(2);
vegetables.push(3);
var vegnums:String = vegetables.toString();
trace(vegnums);
// 1,2,3

原文出自:www.hangge.com  转载请保留原文链接:http://www.hangge.com/blog/cache/detail_676.html

AS3 - 数组Array的几个常用方法(附样例)的更多相关文章

  1. Swift - 动画效果的实现方法总结(附样例)

    在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimations.这三个方法都是类方法. 一,使用 ...

  2. Swift - 数组排序方法(附样例)

    下面通过一个样例演示如何对数组元素进行排序.数组内为自定义用户对象,最终要实现按用户名排序,数据如下: 1 2 3 4 var userList = [UserInfo]() userList.app ...

  3. Swift - 本地消息的推送通知(附样例)

    使用UILocalNotification可以很方便的实现消息的推送功能.我们可以设置这个消息的推送时间,推送内容等. 当推送时间一到,不管用户在桌面还是其他应用中,屏幕上方会都显示出推送消息. 1, ...

  4. Swift - 使用ALAssetsLibrary获取相簿里所有图片,视频(附样例)

    1,ALAssetsLibrary介绍 (1)通过创建ALAssetsLibrary的实例可以访问系统Photos里的图片与视频.这里图片不仅包括相机拍摄的照片,还包括从iTunes导入的和从其他设备 ...

  5. Jquery属性选择器(同时匹配多个条件,与或非)(附样例)

    1. 前言 为了处理除了两项不符合条件外的选择,需要用到jquery选择器的多个条件匹配来处理,然后整理了一下相关的与或非的条件及其组合. 作为笔记记录. 2. 代码 <!DOCTYPE htm ...

  6. 判断Javascript变量是否为空 undefined 或者null(附样例)

    1.变量申明未赋值 var type; //type 变量未赋值 1. type==undefined //true 2. type===undefined //true 3. typeof(type ...

  7. CSS3 - 新单位vw、vh、vmin、vmax使用详解(附样例)

    像 px.em 这样的长度单位大家肯定都很熟悉,前者为绝对单位,后者为相对单位.CSS3 又引入了新单位:vw.vh.vmin.vmax.下面对它们做个详细介绍. 一.基本说明 1,vw.vh.vmi ...

  8. [转]Jquery属性选择器(同时匹配多个条件,与或非)(附样例)

    1. 前言 为了处理除了两项不符合条件外的选择,需要用到jquery选择器的多个条件匹配来处理,然后整理了一下相关的与或非的条件及其组合. 作为笔记记录. 2. 代码 1 2 3 4 5 6 7 8 ...

  9. JS数组array常用方法

    JS数组array常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2)获取对象的 ...

随机推荐

  1. Gulp 自动化的项目构建工具

    在很多场合都会听到前端工和 node 程师推荐 Grunt 来实现项目的自动化,自动化可以自动完成 javascript/coffee/sass/less 等文件的的测试.检查.合并.压缩.格式化.部 ...

  2. nfa转dfa,正式完成

    为了加速转换的处理,我压缩了符号表.具体算法参考任何一本与编译或者自动机相关的书籍. 这里的核心问题是处理传递性闭包,transitive closure,这个我目前采取的是最简单的warshall算 ...

  3. 51nod 棋盘问题(博弈论)

    题目链接: 棋盘问题 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 上帝创造了一个n*m棋盘,每一个格子都只有可能是黑色或者白色的. 亚当和夏娃在玩一个游戏,每次寻找边长为x的正方 ...

  4. jQuery .on() 绑定事件无效

    前几天,要在移动端实现一系列的功能,用 HTML + JS. 按照以往的思路,事件绑定就直接 $(document).on "click", "selector" ...

  5. 每天一道LeetCode--344. Reverse String

    Write a function that takes a string as input and returns the string reversed. Example:Given s = &qu ...

  6. Jquery操作radio,checkbox,select表单操作实现代码

    一 .Select jQuery获取Select选择的Text和Value: 1. $("#select_id").change(function(){//code...}); / ...

  7. 根据数据库内容动态生成html页面

    之前使用了很多方法,但是都很复杂. 项目里包括了数据库的管理页面,对数据库进行修改(新增,插入,删除)等之后,在另一个页面使用. 使用时采用按下相应label弹出所有信息的方法,以html的形式将数据 ...

  8. 项目经理PPT演讲意见

    1.语速 2.互动 3.平常语气,聊天的感觉去讲解 4.脱稿演讲,不要照着PPT读,PPT展示仅仅是一个重点提示,更多在于自己讲解 5.如果是验收等相关的内容,劲量多讲解用户能够得到的利益,如“钱” ...

  9. Mysql中使用FIND_IN_SET解决IN条件为字符串时只有第一个数据可用的问题

    今天在使用Mysql的存储过程处理数据的批量删除时,遇到了WHERE条件中使用IN(strlist)时(strlist为逗号分隔的字符串),只有strlist的第一个元素才有效的问题,现在将问题和解决 ...

  10. js正则表达式的验证示例

    //验证邮箱的JS正则 <script type="text/javascript"> $(function() { $("#inputemail" ...