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. Operation与GCD的不同

    最大并发数: 什么是并发数? 同时执行的任务数.比如同时开启三个线程执行三个任务,并发数就是3. 最大并发数相关的方法: -(NSInteger)maxConcurrentOperationCount ...

  2. 从敏捷开发到小团队SVN

    一.敏捷之惑 敏捷开发,有一个很好的实践,“每天都可以产生一个可用于发布的版本”. 以前对这句话感到非常的困惑,因为我们手中的项目是残缺的,基本只是程序的一个功能片段,在未集成之前如何发布得了?当然这 ...

  3. mongdb Java demo

    接触MONGDB,感觉用起来还挺好.今天做了一个小demo. 一.启动mongdb的服务

  4. 关于JPA方法名创建自动查询

    JPA 的根据解析方法名称自动对接口进行实现的方法能节省大量的资源,以下对于解析规则进行列举哈 商品实体类 package com.dionren.zhaoxie.entity.trade; impo ...

  5. hdu 4424 并查集

    思路:将边从大到小排序,判断向哪边连,能使总和最大. #include<map> #include<set> #include<cmath> #include< ...

  6. 转: ant condition使用

    评注: 用c语言的方式来,比喻ant...比较好理解 转: http://www.smithfox.com/?e=176 [备忘] Apache Ant中的逻辑判断 [原创链接: http://www ...

  7. MongoDB - The mongo Shell, Access the mongo Shell Help

    In addition to the documentation in the MongoDB Manual, the mongo shell provides some additional inf ...

  8. Varnish缓存服务器的搭建配置手册

    Varnish缓存服务器的搭建配置手册 1.Varnish官方环境依赖提示 Installing Varnish Cache is as simple as enabling our package ...

  9. Part 92 Significance of Thread Join and Thread IsAlive functions

    Thread.Join & Thread.IsAlive functions Join blocks the current thread and makes it wait until th ...

  10. UI2_UINavigationBar

    // // AppDelegate.m // UI2_UINavigationBar // // Created by zhangxueming on 15/7/6. // Copyright (c) ...