AS3数组

来源:互联网 发布:台灯牌子 知乎 编辑:程序博客网 时间:2024/05/18 03:25
  1. var arr1:Array = ["1","2","3","4"];  
  2. delete arr1[0];  
  3. trace(arr1.length); //输出4(虽然delete可以删除数组中的元素,但并不改变数组的长度)  
  4.   
  5. var arr2:Array = ["1","2","3","4"];  
  6. arr2.splice(0, 1);  
  7. trace(arr2.length);//输出3(splice在删除数组元素的同时,还会改变数组的长度)  
  8.   
  9. var arr3:Array = [];  
  10. trace(arr3.length);//输出0  
  11. arr3[3] = 1;  
  12. trace(arr3.length);//输出4(用中括号+数组下标的方式给数组元素赋值时,数组的长度变为最大下标+1)  
  13.   
  14. var arr4:Array = [];  
  15. arr4["字符串key"] = "xxxxx";  
  16. trace(arr4.length);//输出0(字符串下标并不会改变数组的长度)  
  17. arr4["5"] = "xxxxx";  
  18. trace(arr4.length);//输出6(如果字条串是纯数字,会被当成数字来处理)  
  19. arr4["010"] = "xxxxx";  
  20. trace(arr4.length);//输出6(不同与int("010")==10,数组的下标并不会进行int()转换,arr4["010"] = "xxxxx"的结果就是arr4中多了一个"010"的key,而arr4的长度不变)  

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
protectedfunction init(event:FlexEvent):void
{
    vararr1:Array= [1,2,4];
    varres1:Boolean= arr1.every(isNumeric);
    trace("isNumeric:", res1); // true
}
 
privatefunction 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
protectedfunction init(event:FlexEvent):void
{
    varemployees: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});
     
    varmanagers:Array= employees.filter(isManager);//调用挑选函数isManager
}
             
privatefunction 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
protectedfunction init(event:FlexEvent):void
{
    varemployees: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
}
             
privatefunction 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
vararr:Array= new Array(123,45,6789);//创建数组arr
varindex2: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
vararr:Array= new Array(123,45,6789,123,984,323,123,32);
varindex2:int= arr.lastIndexOf(123);
trace(index2);// 6

6,join 方法
将数组中的元素转换为字符串、在元素间插入指定的分隔符、连接这些元素然后返回结果字符串

join(sep:*):String 参数:
sep:*--插入分隔符
返回:字符串
1
2
varmyArr:Array= new Array("one","two","three");
varmyStr: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
{
    vararr:Array= new Array("one","two","Three");
    varupperArr:Array= arr.map(toUpper);//创建upperArr数组并调用执行toUpper函数
}
             
privatefunction toUpper(element:*, index:int, arr:Array):String{
    returnString(element).toUpperCase();//小写转大字
}

8,pop 方法
删除数组中最后一个元素,并返回该元素的值。

语法:function pop():Object
返回:对象-- 指定的数组中最后一个元素的值。
1
2
varletters:Array= new Array("a","b","c");
varletter:String= letters.pop();

9,shift 方法
删除数组中第一个元素,并返回该元素

语法:function shift():Object
返回:对象
1
2
varletters:Array= new Array("a","b","c");
varfirstLetter:String= letters.shift();

10,push 方法
将一个或多个元素添加到数组的结尾,并返回该数组的新长度。

语法:function push(... args):uint
参数:
... args-- 要追加到数组中的一个或多个值。
返回:新数组长度
1
2
3
varletters:Array= new Array();
letters.push("a");
letters.push("b","c");

11,unshift 方法
将一个或多个元素添加到数组的开头,并返回该数组的新长度.

语法:function unshift(... args):uint
参数:
... args--一个或多个要插入到数组开头的数字、元素或变量。
返回:数值
1
2
3
4
5
6
7
varnames: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
varletters: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
varletters:Array= new Array("a","b","c","d","e","f");
varsomeLetters:Array= letters.slice(1,3);
trace(letters);    // a,b,c,d,e,f
trace(someLetters);// b,c
 
varsomeLetters2:Array= letters.slice(2);
trace(someLetters2);// c,d,e,f
 
varsomeLetters3: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
protectedfunction init(event:FlexEvent):void
{
    vararr:Array= new Array();
    arr[0] = "one";
    arr[1] = "two";
    arr[3] = "four";
    varisUndef:Boolean= arr.some(isUndefined);//调用执行函数isUndefined
    if(isUndef) {
        trace("array contains undefined values: " + arr);
    }else {
        trace("array contains no undefined values.");
    }
}
privatefunction 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
varvegetables:Array= new Array("spinach",
    "green pepper",
    "cilantro",
    "onion",
    "avocado");
varspliced: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
varvegetables:Array= new Array();
vegetables.push(1);
vegetables.push(2);
vegetables.push(3);
varvegnums:String= vegetables.toString();
trace(vegnums);
// 1,2,3
0 0
原创粉丝点击