【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();

 

原文地址:https://www.cnblogs.com/pandy/p/2098739.html