zoukankan      html  css  js  c++  java
  • 【AS】使用数组

    创建数组

    Ø  无参数:var aEmployees:Array = new Array();

    Ø  指定元素数量的一个单独的参数:var aEmployees:Array = new Array(4);

    Ø  参数列表,每一个参数都是要插入数组的一个新元素的新值:

    var aEmployees:Array = new Array(“Arun”,”Peter”,”Chris”,”Heather”);

     

    var aEmployees:Array = [“Arun”,”Peter”,”Chris”,”Heather”];

    var aEmployees:Array = [];

     

    给数组添加值

    Ø  用数组访问符号进行赋值。

    arrayName[index] = value ;

    Ø  在数组的末尾追加新的元素

    aEmployees.push(“Ruth”,”Hao”,”Laura”);

    Ø  在数组的开始处追加新的元素

    aEmployees.unshift(“Ruth”,”Hao”,”Laura”);

    Ø  在数组中插入元素

    arrayName.splice(startingIndex, numberOfElementsToDelete,element1[, … elementN]);

    举例子:

    Var aEmployees:Array = [“Arun”,”Peter”,”Chris”,”Heather”];

    aEmployees.splice(3,0,”Ruth”,”Hao”,”Laura”);

    trace(aEmployees.toString());

    输出:Arun,Peter,Chris,Ruth,Hao,Laura,Heather.

     

    从数组中删除元素

    Ø  删除数组的最后一个元素

    var sAnEmployee:String = String(aEmployees.pop());

    Ø  删除数组的第一个元素

    var sAnEmployee:String = String(aEmployees.shift());

    Ø  删除数组中间的元素

    var aRemovedEmployees:Array = aEmployees.splice(2,2);

    从数组中删除元素

    Ø  使用一维数组

    Ø  使用并行数组(多个一维数组)

    Ø  使用多维数组

    var aEmployees:Array = new Array();

    aEmployees.push([“Arun”,”555-1234”]);

    aEmployees.push([“Peter”,”555-4321”]);

    aEmployees.push([“Chris”,”555-5678”]);

    aEmployees.push([“Heather”,”555-8765”]);

    for(var i:Number = 0; i<aEmployees.length; i++){

             trace(“Employee:”+aEmployees[i][0]);

             trace(“Phone Number:”+aEmployees[i][1]);

    }

    Ø  使用对象数组

    var aEmployees:Array = new Array();

    aEmployees.push({employee:”Arun”,phone:”555-1234”});

    aEmployees.push({employee:”Peter”,phone:”555-4321”});

    aEmployees.push({employee:”Chris”,phone:”555-5678”});

    for(var i:Number = 0; i<aEmployees.length;i++){

             trace(“Employee:”+aEmployees[i].employee);

             trace(“Phone Number:”+aEmployees[i].phone);

    }

    将数组转换成列表

    Ø  数组-----à列表

    var aEmployees:Array = [“Arun”,”Peter”,”Chris”,”Heather”];

    var sEmployees:String = aEmployees.join(“;”);

    trace(sEmployees);

     

    输出面板将显示如下内容

    Arun;Peter;Chris;Heather

    Ø  列表-----à数组

    var sEmployees:String = “Arun,Peter,Chris,Heather”;

    var aEmployees:Array = sEmployees.split(“,”);

    从存在的数组创建新数组

    Ø  连接数组

    var aEmployeesExec:Array = [“Arun”,”Peter”,”Chris”,”Heather”];

    var aEmployeesNew:Array = [“Gilberto”,”Mary”];

    var aEmployeesStaff:Array = [“Ayla”,”Riad”];

    var aEmployeesAll:Array = aEmployeesExec.concat(aEmployeesNew,aEmployeesStaff);

    Ø  提取数组元素的子集

    var aEmployeesAll:Array = [“Arun”,”Peter”,”Chris”,”Heather”,”Gilberto”,”Mary”,”Ayla”,”Riad”];

    var aEmployeesExec:Array = aEmployeesAll.slice(0,4);   //包含4个元素

    var aEmployeesNew:Array = aEmployeesAll.slice(4,6);

    var aEmployeesStaff:Array = aEmployeesAll.slice(6);

    对数组进行排序

    Ø  简单的排序

    为了实现按字母顺序排序,只需要简单地创建数组并不带参数调用sort()方法。

    var aEmployees:Array = [“Arun”,”Peter”,”Chris”,”Heather”];

    aEmployees.sort();

    Ø  较复杂的排序

    ²  按数字进行排序

    var aNumbers:Array = [10,1,2,15,21,13,33,3];

    aNumbers.sort(Array.NUMERIC);

    ²  按降序进行排序

    aEmployees.sort(Array.DESCENDING);

    ²  不区分大小写进行排序

    aWords.sort(Array.CASEINSENSITIVE);

    ²  排序并测试唯一值

    aEmployees.sort(Array.UNIQUESORT);

    如果数组的元素都是惟一的,该数组就按字母顺序进行升序排列。

    如果有一个或多个重复的元素,sort()方法就返回0.并且该数组不被排序。

    ²  获取排序后的索引

    返回一个表示排序后元素的索引的数组。这个选项不会对原来的数组进行排序,但提供了一个按排序后的顺序访问元素的方法。原来的数组不会被修改。

    var aEmployees:Array = [“Arun”,”Peter”,”Chris”,”Heather”];

    var aSortedIndices:Array = aEmployees.sort(Array.RETURNINDEXEDARRAY);

    trace(aEmployees.toString());

    trace(aSortedIndices.toString());

    for(var i:Number = 0;i< aSortedIndices.length;i++){

             trace(aEmployees[aSortedIndices[i]]);

    }

    ²  用多个标志进行排序

    aWords.sort(Array.DESCENDING|Array.CASEINSENSITIVE);

    ²  用自定义算法进行排序

    例子:该函数首先按值得类型(城市的名字或国家的名字)然后按字母顺序对数组的值进行排序

             function isInArray(sElement:String, aArray:Array){

                       for(var i:Number = 0; I < aArray.length; i++){

                                if(sElement == aArray[i]){

                                         return true;

    }

    }

    return false;

    }

    function sorter(a:String , b:String):Number{

             var aCountries:Array =[“Mexico”,”Vietnam”,”Japan”];

             var aCities:Array = [“Caracas”,”Paris”,”Berlin”];

             if((isInArray(a,aCountries) && isInArray(b,aCities)) || (isInArray(b,aCountries) && isInArray(a,aCities))){

                       return 1;

    }

    If(a.toUpperCase() > b.toUpperCase()){

             return 1;

    }

    else if(a.toUpperCase() < b.toUpperCase()){

             return -1;

    }

    else{

             return 0;

    }

    }

    var aPlaces:Array = [“Berlin”,”Vietnam”,”Japan”,”Caracas”,”Mexico”,”Paris”];

    aPlaces.sort(sorter);

    trace(aPlaces.toString());

    Ø  对关联数组的数组进行排序

    ²  按一个单独的键进行排序

    function displayArray(aArray:Array){

             var sElement:String = null;

             for(var i:Number = 0; I < aArray.length; i++){

                       sElement = “” ;

                       for(var key in aArray[i]){

                                sElement += aArray[i][key] + “  ”;

    }

    trace(sElement);

    }

    }

     

    var aCars:Array = new Array();

    aCars.push({make:”Oldsmobile”,model:”Alero”,extColor:”blue”});

    aCars.push({make:”Honda”,model:”Accord”,extColor:”red”});

    aCars.push({make:”Volvo”,model:”242”,extColor:”red”});

    aCars.sortOn(“make”);

    displayArray(aCars);

    ²  按多个键进行排序

    aCars.sortOn([“make”,”model”,”extColor”]);

    ²  用排序标志进行排序

    aCars.sortOn([“make”,”model”,”extColor”],Array.DESCENDING);

    ²  倒转数组

    aEmployees.reverse();

     

  • 相关阅读:
    Java基础----ArrayList中的clear方法以及ArrayList对象
    LeetCode152:乘积最大子数组
    LeetCode18:四数之和
    LeetCode120 :三角形最小路径和
    LeetCode406:根据身高重建队列
    LeetCode347:前 K 个高频元素
    LeetCode-146:LRU缓存机制
    LeetCode-17:电话号码的字母组合
    LeetCode
    任务调度冲突
  • 原文地址:https://www.cnblogs.com/pandy/p/2098739.html
Copyright © 2011-2022 走看看