`
it_liuyong
  • 浏览: 98143 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

as3数组的进一步用法

    博客分类:
  • flex
 
阅读更多
首先值得一提的是AS3的 Array 有了像 String 一样的 indexOf() 和 lastIndexOf() 。另外增加了几个很有用的 Method。

every(callback:Function, thisObject:* = null):Boolean
检测是否数组所有元素都满足 callback 方法指定的条件。

some(callback:Function, thisObject:* = null):Boolean
检测数组中是否有元素满足 callback 方法指定的条件。

filter(callback:Function, thisObject:* = null):Array
根据 callback 方法指定的条件过滤数组,返回由符合条件的元素组成的新数组

map(callback:Function, thisObject:* = null):Array
数组的每一个元素执行 callback 方法,返回由对应的结果组成的新数组

forEach(callback:Function, thisObject:* = null):void
数组的每一个元素执行 callback 方法,不返回任何值

第二个参数 thisObject 是第一个参数 callback 的执行范围,即方法内部的 this ,一般不需指定。

callback 的参数也都是一样的
function callback(item:*, index:int, array:Array)
item 就是数组的每一个元素,如果数组元素类型统一就指明该类型,否则用 * 。index是数组当前元素的索引,array是操作的数组。参数名称可以任意起。如果只使用第一个参数这些方法都不改变原数组,使用后两个参数则可对原数组进行操作。不推荐这样做。

程序代码 public function TestArray(){
    var arr1:Array = [1,3,5,7,9,11];
    //是否所有元素是两位数(false)
    trace(arr1.every(isDoubleDigit));
    //是否有两位数的元素(true)
    trace(arr1.some(isDoubleDigit));
    //arr1数组元素执行doubleObject方法的返回值组成新的arr2数组
    var arr2:Array = arr1.map(doubleObject);
    //arr3是arr2中满足 bigDouble 条件的元素组成的新数组
    var arr3:Array = arr2.filter(bigDouble);
    trace("arr1:",arr1);
    trace("arr2 double :");
    arr2.forEach(traceDouble);
    trace("arr3 double :");
    arr3.forEach(traceDouble);
    //double方法使用了后两个参数,直接修改了原数组
    arr1.forEach(double);
    trace("arr1:",arr1);
}
private function isDoubleDigit(n:int,i:int,a:Array):Boolean{
    return n > 10;
}
private function doubleObject(n:int,i:int,a:Array):Object{
    return {double:n * 2};
}
private function bigDouble(o:Object,i:int,a:Array):Boolean{
    return o.double > 10;
}
private function traceDouble(o:Object,i:int,a:Array):void{
    trace(o.double);
}
private function double(n:int,i:int,a:Array):Object{
    a[i] *= 2;
}

输出:

程序代码 false
true
arr1: 1,3,5,7,9,11
arr2 double :
2
6
10
14
18
22
arr3 double :
14
18
22
arr1: 2,6,10,14,18,22
文章来源: 我要学flash网(www.51xflash.com) 原文地址:http://www.51xflash.com/article/as3/201005/05-11518.html
分享到:
评论

相关推荐

    array-peek:扩展数组功能以允许使用窥视方法

    因此无法进行进一步的处理,而peek将返回数组,因此您可以继续进行处理所需的转换安装使用npm install array-peek --save或yarn add array-peek添加它到您的项目中yarn add array-peek用法要使用此包,只需在使用...

    flex导入excel2007版本以上并支持日期格式的类库Rxlsx

    as3xls 只支持excel2003版本以下的,不支持扩展名为.xlsx的excel,而类库Rxlsx支持.xlsx的excel。原Rxlsx不支持日期格式,读取日期单元格的数据会变成数字,本人将excel的日期格式整理出来,并在读取的时候重新将...

    软件课程设计 试验报告 代码 演示

    根据上面的流程图可以看到如果是一步一步的写程序,势必会让程序变得冗长且不易阅读,因而我想到使用循环的方法,将流程图中类似的结构体做成一个循环体来实现,使程序源代码变得十分的简洁,且容易被阅读和修改。...

    详解numpy.ndarray.reshape()函数的参数问题

    我们知道numpy.ndarray.reshape()是用来改变numpy数组的形状的,但是它的参数会有一些特殊的用法,这里我们进一步说明一下。代码如下: import numpy as np class Debug: def __init__(self): self.array1 = np....

    opt_einsum::high_voltage:通过收缩顺序优化优化 NumPy、Tensorflow、Dask 等中的 einsum 函数

    示例用法函数通常可以作为einsum函数的替代品,无需进一步更改代码,同时提供卓越的性能。 这里,张量收缩是在优化和不优化的情况下进行的: import numpy as npfrom opt_einsum import contractN = 10C = np . ...

    VB课程设计俄罗斯方块

    利用Select将方块的7中造型列出,比如长条型的设计,在欲览区中分别有3.4.5.6和5.15.25.35四个方块构成两中形态,用数组为: m(0) = 3: m(1) = 4: m(2) = 5: m(3) = 6: situation2 = 0 m(0) = 5: m(1) = 15: m(2) =...

    JAVA基础之java的移位运算

    例如变量a的值为3,则它的二进制代码对应地存储在数组元素binary[3] 中。~a的值与数字0x0f (对应二进制为0000 1111 )进行按位与运算的目的是减小~a的值,保证变量g的结果小于16。因此该程序的运行结果可以用数组...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    mssql 微软 只能能运行在windows平台,体积比较庞大,占用许多系统资源, 但使用很方便,支持命令和图形化管理,收费。 中型企业 Mysql 甲骨文 是个开源的数据库server,可运行在多种平台, 特点是响应速度特别快,...

    jQuery完全实例.rar

    这个函数最基本的用法就是向它传递一个表达式(通常由 CSS 选择器组成),然后根据这个表达式来查找所有匹配的元素。 默认情况下, 如果没有指定context参数,$()将在当前的 HTML 文档中查找 DOM 元素;如果指定了 ...

    CodeIgniter:php敏捷开发框架web快速开发详解

    之后,也许是 Ada Lovelace(人类历史上的首位程序员),又或许是 Alan Turning,决定将计算机程序模块化,从而使得片段程序代码可以重复使用。PHP 程序员们早已习惯了将需要重复使用的代码写在函数中,并将这些函数...

Global site tag (gtag.js) - Google Analytics