AS3数组

    xiaoxiao2021-03-25  154

    var arr1:Array = ["1","2","3","4"];   delete arr1[0];   trace(arr1.length); //输出4(虽然delete可以删除数组中的元素,但并不改变数组的长度)      var arr2:Array = ["1","2","3","4"];   arr2.splice(0, 1);   trace(arr2.length);//输出3(splice在删除数组元素的同时,还会改变数组的长度)      var arr3:Array = [];   trace(arr3.length);//输出0   arr3[3] = 1;   trace(arr3.length);//输出4(用中括号+数组下标的方式给数组元素赋值时,数组的长度变为最大下标+1)      var arr4:Array = [];   arr4["字符串key"] = "xxxxx";   trace(arr4.length);//输出0(字符串下标并不会改变数组的长度)   arr4["5"] = "xxxxx";   trace(arr4.length);//输出6(如果字条串是纯数字,会被当成数字来处理)   arr4["010"] = "xxxxx";   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 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( trace Employee); //调用执行函数traceEmployee }               private function trace Employee(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
    转载请注明原文地址: https://ju.6miu.com/read-18344.html

    最新回复(0)