• Flex与As3学习笔记之:Part 4 数组


    一、 Array类

    1.1创建数组

    var arr:Array = new Array(3);

    var arr2:Array = new Array(“ad”,”bd”,”dfaf”);

    var arr3:Array = [“adf”,”fads”,”adaf”];

     

    1.2插入数组元素:push()、unshift()、splice()

    push(item)  // 在数组末尾添加一个或多个元素,回操作后数组长度

    unshift(item) // 在数组开头插入一个或多个元素,返回操作后数组长度

    splice(索引位置,要替换的元素个数,新元素一,新元素二,...)  // 返回被删除元素的数组

     

    1.3删除数组元素:pop()、shift()、splice()、delete

    pop() // 删除最后一个元素,返回已删除的项

    shift() // 删除第一个元素,返回已删除的项

    splice(索引位置,要替换的元素个数,新元素一,新元素二,...)

    delete arr[i] // 将arr数组第3个元素设为undefined,但并不从数组中删除此元素

    例:

    var oceans:Array = [”珠江”,”北冰洋”,”黄河”,”长江”,”太平洋”];

    var rivers:Array = oceans.splice(2,2,”淮海”);

    则调用后oceans为[”珠江”,”北冰洋”, ”淮海”,”太平洋”]

             rivers为[“黄河”,”长江”]

    可以指定一个length来截断数组,如上面的oceans:

       oceans.length=3;则 oceans只剩下前三个元素

     

    1.4数组排序:reverse()、sort()、sortOn()

    1.4.1、reverse() // 逆序

    1.4.2、sort(option)

         option可选项为下:

            Array.CASEINSENSITIVE 不区分大小写

            Array.DESCENDING 从大到小排

            Array.UNIQUESORT 有相同项排序停止

            Array.NUMERIC 按从小到大排

            option还可以是一个自定义方法,按自定义的方式排序,以下为一个按英文姓氏排序的例:

       例:

         var names:Array = new Array(“John Smith”,”Jane Doe”,”Mike Jones”);

         function orderLastName(a,b):int

         {

           var lastName:RegExp = /\b\S+$/;

           var name1 = a.match(lastName);

           var name2 = b.match(lastName);

           if(name1<name2) return -1;

           else if(name1>name2) return 1;

           else return 0;

          }

         names.sort(orderLastName);

    1.4.3、sortOn()方法:对关联数组按可索引序列排序

      var poets:Array = new Array();

      poets.push({name:”adf”,born:”112”});

      poets.push({name:”ffd”,born:”43”});

      poets.sortOn(“born”,Array.NUMERIC);

    若为sortOn指定Array.RETURNINDEXEDARRAY常量,则可以返回一个排序后的新数组,而对原数组不改变。如:

    var newArr:Array = poets.sortOn(“born”,Array.NUMERIC | Array.RETURNINDEXEDARRAY);

     

    1.5数组连接与查询等:concat()、slice ()、toString()、join()

      concat(“新元素一”,”新元素二”,”...”) // 返回添加新元素后的新数组

      slice(2,5) // 返回第三到第五个元素的新数组

      toString() // 返回数组以,分隔的串

      join(“+”) // 返回串以”+”为分隔

     

    1.6数组克隆:自定义clone()方法

    可以用不带参数的concat()或slice()返回数组的浅表副本,但深度复制需要自定义函数,以为下一个深度复制的函数,用ByteArray序列化对象后完成复制:

    import flash.utils.ByteArray;

    function clone(source:Object):*

    {

      var myBA:ByteArray = new ByteArray();

      myBA.writeObject(source);

      myBA.position = 0;

      return (myBA.readObject());

    }

  • 相关阅读:
    关于git 拉取的时候一直弹输入密码的问题
    开始日期结束日期check问题
    关于boostrap 排版问题
    【DP_树形DP专题】题单总结
    【DP_背包专题】 背包九讲
    Ubuntu不卸载ibus前提下安装搜狗输入法
    Ubuntu下Java环境配置
    Ubuntu下gcc及g++环境配置
    Ubuntu下VIM(GVIM)环境配置
    PAT 1065 A+B and C (64bit) (20)
  • 原文地址:https://www.cnblogs.com/rosiu/p/2289568.html
Copyright © 2020-2023  润新知