zoukankan      html  css  js  c++  java
  • AS3

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

    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 = [1, 2, 4];
        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(2, 2);
    trace(vegetables); // spinach,green pepper,avocado
    trace(spliced);    // cilantro,onion
    vegetables.splice(1, 0, 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

  • 相关阅读:
    Android Studio连接真机
    day 4 __all__ 包 __init__.py
    day1 创建X00001文件1K
    day 3 模块
    day 2 异常传递 ,抛出
    day 1 异常基本功能
    day 7 __new___
    day 6 汽车4S店铺
    day 5 多态 类 静态
    day 4 继承
  • 原文地址:https://www.cnblogs.com/dongyl/p/5266879.html
Copyright © 2011-2022 走看看