AS3数组学习

flash AS3 自学教程 一些基础常见的类的使用方法,一些学习的心得体会,数组的转化;执行条件语句;生成随机数等等。增强代码的可重用性。 立即下载
indexOf  lastIndexOf

返回索引,查找不到返回-1

  1. var arr:Array = ["a","b","c","d","e","f","g"];
  2. arr.indexOf("e");
  3. arr.indexOf("b",2); //从第3个元素开始查找
  4. arr.lastIndexOf("b",2); //从第3个元素反向查找
push  unshift

在首尾插入元素,返回增加元素后数组的长度

  1. var arr:Array = ["a","b","c","d","e","f","g"];
  2. arr.push("h"); //在数组尾部插入元素h
  3. arr.push("i","j","k"); //在数组尾部插入多个元素
  4. arr.unshift("h"); //在数组头部插入元素h
  5. arr.unshift("i","j","k"); //在数组头部插入多个元素
pop  shift

删除首尾元素,返回被删除的元素

  1. var arr:Array = ["a","b","c","d","e","f","g"];
  2. arr.pop(); //删除尾元素
  3. arr.shift(); //删除首元素 
splice

删除数组一段连续的元素,返回被删除的元素数组

  1. var arr:Array = ["a","b","c","d","e","f","g"];
  2. arr.splice(删除点的索引,要删除的个数,新元素1,新元素2);
  3. arr.splice(2,3,"o","p","q"); //从索引为2开始,删除3个元素,并插入3个新元素"o","p","q"
  4. arr.splice(-2,3,"o","p","q"); //从倒数为2的索引开始,删除3个元素,并插入3个新元素"o","p","q"
  5. arr.splice(2,3); //单纯的删除从索引2开始的3个元素(不插入)
  6. arr.splice(2); //单纯的删除从索引2开始的所有元素(不插入)
  7. arr.splice(2,0,"x","y","z"); //在索引2的后面插入3个新元素(不删除)
slice

获取数组中的部分元素

  1. var arr:Array = ["a","b","c","d","e","f","g"];
  2. var newArr:Array = arr.slice(); //浅复制数组
  3. var newArr:Array = arr.slice(2);
  4. var newArr:Array = arr.slice(-2);
  5. var newArr:Array = arr.slice(2,5); 
concat

将多个元素或数组拼接成一个新数组

  1. var arr:Array = ["a","b","c","d","e","f","g"];
  2. var newArr = arr.concat("x","y","z"); //原数组不变,新数组是原数组拼接后的结果
  3. var newArr = arr.concat(); //浅复制数组 
reverse

将数组倒序排列

  1. var arr:Array = ["a","b","c"];
  2. arr.reverse(); //得到"c","b","a" 
sort

◆sort() 按默认排序,注意:区分大小写,数字也是按字符串来处理

  1. var arr:Array = ["b","c","a"];
  2. arr.sort(); //得到"a","b","c" arr = ["210","1111","30"];
  3. arr.soft(); //得到"1111","210","30" arr = ["b","X","A","c"];
  4. arr.sort(); //得到"A","X","b","c"
  5. var arr:Array = ["b","C",235,"a",38,"X",8641];
  6. trace(arr.sort()); //得到235,38,8641,C,X,a,b 

◆sort(args) 按参数排序,一共有5种(注意:除了Array.RETURNINDEXEDARRAY,其它方式只要排序成功,都会实际改变数组)

 

        sort(Array.CASEINSENSITIVE) 同sort(),不过不区分大小写,数字也是按字符串来处理
  1. var arr = ["b","X","A","c"];
  2. arr.sort(Array.CASEINSENSITIVE); //得到"A","b","c","X" 
        sort(Array.DESCENDING) 按字符串的倒序排列,区分大小写,数字也是按字符串来处理
  1. var arr:Array = ["b","C","a","X",235,8641,38];
  2. trace(arr.sort(Array.DESCENDING)); //得到b,a,X,C,8641,38,235
        sort(Array.UNIQUESORT) 同sort(),如果数组有相同元素,则放弃排序,返回0
  1. var arr:Array = ["b","C","a","X",235,8641,38,2365];
  2. if(arr.sort(Array.UNIQUESORT)=="0")
  3. { 
  4.     trace("有相同元素");
  5. }
  6. else
  7. { 
  8.     trace("没有相同元素");
  9. }
        sort(Array.RETURNINDEXEDARRAY) 同sort(),返回排序后的索引列表,原数组不变
  1. var arr:Array = ["b","C","a","X",235,8641,38,2365];
  2. trace(arr.sort(Array.RETURNINDEXEDARRAY)); //得到4,7,6,5,1,3,2,0
  3. trace(arr); //得到b,C,a,X,235,8641,38,2365(原数组)
        sort(Array.NUMERIC) 按数字从小到大排序,如果数组里含有非数字,会抛出异常
  1. var arr:Array = [235,8641,38,2365];
  2. trace(arr.sort(Array.NUMERIC)); //得到38,235,2365,8641

◆sort(函数名) 按自定义函数比较,该函数必须接受2个参数,返回值为1、-1、0

  1. public function Sample1008()
  2. {
  3.     var objA:Object = {price:200,quantity:2};
  4.     var objB:Object = {price:400,quantity:4};
  5.     var objC:Object = {price:100,quantity:1};
  6.     var arr:Array = [objA,objB,objC];
  7.     trace("原数组是:");
  8.     for(var i:int=0;i<arr.length;i++)
  9.     {
  10.         trace(arr[i].price);
  11.     }
  12.     arr.sort(Compare);
  13.     trace("排序后的数组是:");
  14.     for(var j:int=0;j<arr.length;j++)
  15.     {
  16.         trace(arr[j].price);
  17.     }
  18. }
  19. private function Compare(paraA:Object,paraB:Object):int
  20. {
  21.     var totalPriceA:int = paraA.price * paraA.quantity;
  22.     var totalPriceB:int = paraB.price * paraB.quantity;
  23.     if(totalPriceA>totalPriceB)
  24.     {
  25.         return 1;
  26.     }
  27.     else if(totalPriceA<totalPriceB)
  28.     {
  29.         return -1;
  30.     }
  31.     else
  32.     {
  33.         return 0;
  34.     }
  35. }
  36. /*运行结果是
  37. 原数组是:
  38. 200
  39. 400
  40. 100
  41. 排序后的数组是:
  42. 100
  43. 200
  44. 400*/
sortOn

常用于对象数组的排序

  1. var obj1:MyClass = new MyClass();
  2. var obj2:MyClass = new MyClass();
  3. var obj3:MyClass = new MyClass();
  4. obj1.orderID = 300;
  5. obj2.orderID = 100;
  6. obj3.orderID = 200;
  7. var arr:Array = [obj1,obj2,obj3];
  8. //trace(arr.sortOn("orderID"));
  9. trace(arr.sortOn("orderID",Array.RETURNINDEXEDARRAY)); //得到索引1,2,0 
every

判断数组里的每个元素是否满足某些条件,只有全部都满足才为true

  1. public function Sample1008()
  2. {
  3.     //必须5个人都满70级,才可以进卡拉赞副本
  4.     var player1:Object = {name:"wayne",level:70};
  5.     var player2:Object = {name:"tom",level:69};
  6.     var player3:Object = {name:"jacky",level:70};
  7.     var player4:Object = {name:"andy",level:68};
  8.     var player5:Object = {name:"bill",level:70};
  9.     
  10.     var playerList:Array = [player1,player2,player3,player4,player5];
  11.     if(!playerList.every(CheckLevel))
  12.     {
  13.         trace("队伍中有人等级未到70,无法进入副本");
  14.     }
  15. }
  16. private function CheckLevel(item:*,index:int,arr:Array):Boolean
  17. {
  18.     if(item.level<70)
  19.     {
  20.         //trace(item.name+"等级未到70,无法进入副本");
  21.         return false;
  22.     }
  23.     return true;
  24. }
map

映射器,逐个处理数组中的元素,最后生成一个修改后的新数组(不会更改原数组)

  1. public function Sample1008()
  2. {
  3.     var player1:Object = {name:"wayne",level:70};
  4.     var player2:Object = {name:"tom",level:69};
  5.     var player3:Object = {name:"jacky",level:70};
  6.     var player4:Object = {name:"andy",level:68};
  7.     var player5:Object = {name:"bill",level:70};
  8.     
  9.     var playerList:Array = [player1,player2,player3,player4,player5];
  10.     
  11.     for(var i:int = 0; i<playerList.length; i++)
  12.     {
  13.         trace("player"+(i+1)+"的所有属性是:");
  14.         for(var attr:String in playerList[i])
  15.         {
  16.             trace(attr+":"+playerList[i][attr]);
  17.         }
  18.     }
  19.     
  20.     //为每个玩家添加新属性"声望值"
  21.     var newArray:Array = playerList.map(AddNewAttribute);
  22.     
  23.     trace("-----------------Map后的结果-----------------");
  24.     
  25.     for(var j:int = 0; j<newArray.length; j++)
  26.     {
  27.         trace("player"+(j+1)+"的所有属性是:");
  28.         for(var attr2:String in newArray[j])
  29.         {
  30.             trace(attr2+":"+newArray[j][attr2]);
  31.         }
  32.     }
  33. }
  34. private function AddNewAttribute(item:*,index:int,arr:Array):Object
  35. {
  36.     var tmpPlayer:Object = {};
  37.     tmpPlayer.name = item.name;
  38.     tmpPlayer.level = item.level;
  39.     tmpPlayer.repute = 99;
  40.     return tmpPlayer;
  41. }
some

判断数组里的每个元素是否满足某些条件,只要有一个满足就返回true

  1. public function Sample1008()
  2. {
  3.     //主要队伍里有一个人声望达到140以上,则全队可以进副本
  4.     var player1:Object = {name:"wayne",level:70,repute:100};
  5.     var player2:Object = {name:"tom",level:70,repute:190};
  6.     var player3:Object = {name:"jacky",level:70,repute:50};
  7.     var player4:Object = {name:"andy",level:70,repute:230};
  8.     var player5:Object = {name:"bill",level:70,repute:120};
  9.     
  10.     var playerList:Array = [player1,player2,player3,player4,player5];
  11.     
  12.     if(playerList.some(CheckRepute))
  13.     {
  14.         trace("可以进入副本");
  15.     }
  16.     else
  17.     {
  18.         trace("队伍里没有成员声望达到140,无法进入副本");
  19.     }
  20. }
  21. private function CheckRepute(item:*,index:int,arr:Array):Boolean
  22. {
  23.     if(item.repute>=140)
  24.     {
  25.         return true;
  26.     }
  27.     return false;
  28. }
filter

将数组里满足特定条件的元素提取出来,生成一个新数组

  1. public function Sample1008()
  2. {
  3.     //得到队伍里所有声望达到要求的成员
  4.     var player1:Object = {name:"wayne",level:70,repute:100};
  5.     var player2:Object = {name:"tom",level:70,repute:190};
  6.     var player3:Object = {name:"jacky",level:70,repute:50};
  7.     var player4:Object = {name:"andy",level:70,repute:230};
  8.     var player5:Object = {name:"bill",level:70,repute:120};
  9.     
  10.     var playerList:Array = [player1,player2,player3,player4,player5];
  11.     
  12.     var newArray:Array = playerList.filter(CheckRepute);
  13.     
  14.     for(var i:int=0; i<newArray.length; i++)
  15.     {
  16.         for(var attr:String in newArray[i])
  17.         {
  18.             trace(attr+":"+newArray[i][attr]);
  19.         }
  20.     }
  21. }
  22. private function CheckRepute(item:*,index:int,arr:Array):Boolean
  23. {
  24.     if(item.repute>=140)
  25.     {
  26.         return true;
  27.     }
  28.     return false;
  29. }
forEach

对数组里的元素逐个进行操作,实际改变了数组(不同于map)

  1. public function Sample1008()
  2. {
  3.     //在每个玩家名字前面加上公会名称
  4.     var player1:Object = {name:"wayne",level:70,repute:100};
  5.     var player2:Object = {name:"tom",level:70,repute:190};
  6.     var player3:Object = {name:"jacky",level:70,repute:50};
  7.     var player4:Object = {name:"andy",level:70,repute:230};
  8.     var player5:Object = {name:"bill",level:70,repute:120};
  9.     
  10.     var playerList:Array = [player1,player2,player3,player4,player5];
  11.     
  12.     playerList.forEach(BuildName);
  13.     
  14.     for(var i:int=0; i<playerList.length; i++)
  15.     {
  16.         for(var attr:String in playerList[i])
  17.         {
  18.             trace(attr+":"+playerList[i][attr]);
  19.         }
  20.     }
  21. }
  22. private function BuildName(item:*,index:int,arr:Array):void
  23. {
  24.     item.name = "暗界--"+item.name;
  25. }
AS3语法&mdash;&mdash;数组和类型转换 flex.3的语法讲座,swf格式,共6课。 立即下载

相关推荐

ESP32蓝牙配网实战:微信小程序中的blufi协议实现与优化

本文详细介绍了在微信小程序中实现ESP32蓝牙配网的实战经验,重点解析了blufi协议的应用与优化。内容涵盖从开发环境配置、协议帧格式解析,到小程序端蓝牙通信、数据转换的核心步骤,并提供了配网状态机设计、错误处理及性能调优等进阶方案,旨在帮助开发者高效、稳定地完成物联网设备配网功能开发。

weixin_29159613的博客 456

基础-AS3数组

1. 索引数组 定义:数组中的每个元素都存储在指定编号的位置中,这个位置称为该数组的索引。数组的元素都用唯一的整数下标来索引。该索引的起始值为0,每个元素保存在索引指定的位置。多维数组也可以通过索引来访问数组,也是索引数组。 1.1 AS3数组以非零整数为索引的稀疏数组(不要求每个盒子都装东西,即是第1或第9个盒子装东西,其他可留空),不支持类型化数组(即是不要求数组存放同一种类型的数据)

mzfen1988 3460

【老生谈算法】可视化通道流中瞬时涡量场的算法实现与MATLAB源码分析——瞬时涡量场

本文旨在探讨可视化通道流中瞬时涡量场的方法,并通过MATLAB编程实现这一过程。涡量场作为描述流体旋涡强度和方向的重要物理量,对于理解复杂流体运动具有重要意义。本文首先介绍了涡量场的基本概念,随后详细阐述了从测量数据收集到涡量场可视化的完整流程,并给出了相应的MATLAB源码。通过实际运行该源码,我们展示了涡量场的可视化结果,并讨论了其在流动结构识别和动力学行为理解中的应用。关键词: 涡量场;流体运动;MATLAB;可视化;PIV一、引言。

m0_53407570的博客 1125

AS3.0数组的方法大全(精选)

indexOf,lastindexOf用来直接查找目标元素在数组中的索引。 indexOf用法: 目标数组.indexOf(要查找的元素) 或者 目标数组.indexOf(要查找的元素,查找的起始位置) //按索引从小到大查找,找到返回索引值 lastindexOf用法:目标数组.lastindexOf(要查找的元素) 或者 目标数组.lastindexOf(要查找的元素,查找的起始位

sjz168的专栏 7032

从法律文档到知识图谱

这里我们定义了两个 Pydantic 模型:Location 用于捕捉结构化的地址信息,包含可选的国家、州和地址字段;Party 用于表示合同参与方,包含必填的名称和可选的位置详情。字段描述通过告知 LLM 每个字段具体需要查找哪些信息,来辅助提取过程。"""包含结构化地址组件的位置信息。"""country: Optional[str] = Field(None, description="国家")

Anspire的博客 3030

实战Nocobase插件开发:如何用yarn pm命令快速创建和测试API接口插件

本文详细介绍了如何使用Nocobase插件开发工具快速创建和测试API接口插件,涵盖从环境配置、插件骨架生成到数据模型定义和接口实现的完整流程。通过yarn pm命令简化开发步骤,帮助开发者高效构建支持CRUD的API插件,适用于低代码平台开发场景。

weixin_29313239的博客 456

AS3数组

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

iFlyingCoder的博客 611

直播间人气协议算法:从批量操作到数据接口的自动化实现

本文深入解析直播间人气协议算法的实现原理与技术细节,涵盖批量账号管理、IP代理方案、用户行为模拟算法及平台数据接口调用策略。通过逆向工程分析通信协议,结合算法设计实现自动化流量提升,同时探讨风控规避与系统性能优化方案,为开发者提供合规的技术实践参考。

weixin_30505225的博客 517

AS3 Array学习笔记

详细内容请参见AS3殿堂之路和AS3 API。一、初始化1、public dynamic class Array extends Object,位于顶级包中,无需import。1、AS3中的Array是非类型化的稀疏数组。即不要求元素类型一致,不要求每个索引都有对应值。2、var a:Array和var a:Array=[],trace出来的a是不同的。一个是null,一个是空白("")。3、va...

小黑的成长记录 272

FFmpeg音频转换避坑实录:为什么VOS的REC转MP3比WAV转MP3体积小一半?

本文深入解析了FFmpeg在VOS系统REC格式音频转换中的优化技巧,揭示了REC转MP3比WAV转MP3体积小一半的原因。通过分析REC格式的压缩特性、转码参数陷阱及FFmpeg调优方法,帮助开发者实现高效音频转换,显著降低存储成本。

weixin_30752699的博客 526

uniapp - 详细实现移动端公众号 H5 网页授权登录流程及示例代码,申请测试公众号全流程及本地调试无需部署上线服务器就能直接调起微信登陆授权页面,手机移动端h5公众号页面利用微登录拿到用户数据!

uni-app,微信公众号,h5网页,uniapp网页端,手机端H5公众号页面,微信网页登陆,uniApp详细实现公众号的登录,微信授权第三方网站登录,流程及逻辑详细教程,OAuth2.0,公众号网页授权,微信网页授权通过code换取网页授权,redirect_url,参数错误,解决,报错,无法调起,如何申请测试公众号,微信公众平台测试号的申请与使用,获取用户openid手机号昵称头像,利用测试号实现本地调试微信登录授权,本地无法调试怎么办,测试公众号,在开发环境下怎么测试,用项目本地ip地址,微信公众号平

🏆 前端领域优质创作者 5063

AS3数组:Array

一、创建数组 创建数组的方法有两种:一是利用构造函数创建;二是利用中括号赋值来创建 //创建一个空数组 var _arr:Array=new Array() //创建一个长度为3的数组,数组中的元素为空 var _arr:Array=new Array(3) //创建一个数组,并直接对该数组赋值 var _arr:Array=new Array(1,2,3,4) //使用中括号赋值创建数组 v

mzfen1988 3615

【AI产品与商业航图】Flux.1 完全开源 AI 绘图模型:本地部署与 ComfyUI 实战指南

Flux.1是一个开源项目,用户可以自由使用和修改,完全免除使用费用。🖥️本地部署支持:与一些依赖云端计算的工具不同,Flux.1支持本地部署,确保用户可以离线使用并自主控制数据隐私。🔄兼容ComfyUI框架:Flux.1可以无缝集成到ComfyUI中,用户可以享受更加简便和直观的操作界面。🎨卓越的图像生成能力:Flux.1能够生成高质量、细腻的图像,支持多种风格与创作主题的切换。💾低硬件要求。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1737

as3学习笔记一:数组的长度

vararr1:Array=["1","2","3","4"]; deletearr1[0]; trace(arr1.length);//输出4(虽然delete可以删除数组中的元素,但并不改变数组的长度) vararr2:Array=["1","2","3","4"]; arr2.splice(0,1); trace(arr2.leng...

weixin_34060299的博客 176

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ActionScript3(AS3)类库学习之(二)——掌握Array和Vector数组操作

Array和Vector是AS3中两个重要的类,这两个类都用来表示数组,它们有很多相同之处,有很多相同的方法,但是,它们也有很多不同之处,主要是如下几点:1.Array中可以存放多种不同类型的对象,number,String,甚至是更复杂的对象和数组。而Vector虽然也可以用来放各种类型的对象,但是在进行构造的时候就必须指定容纳的数据类型,指定之后就不能进行更改了,一个Vector对象只能放一种...

weixin_30872337的博客 468

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

AS3学习笔记(二)Array数组操作

为什么80%的码农都做不了架构师?>>> ...

weixin_33779515的博客 677

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

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) // 在数组末尾添...

weixin_30449453的博客 94

删除数组中指定key_Flash如何删除数组中指定位置的元素(AS3)

数组是在Flash代码开发中经常用到的类型,这里就讲一下实现删除数组中指定位置的元素。FLASH如何使用数组之轮显元素(AS3)-百度经验​jingyan.baidu.comFLASH如何使用数组之跳转随机帧(AS2)-百度经验​jingyan.baidu.com适用软件:Flash CS6及其它支持AS3脚本的Flash软件制作步骤:1.打开软件,新建AS3文档。2.使用文本工具在舞台上放置一个...

weixin_39743722的博客 157

[AS3.6.1]Kotlin学习笔记2(常量,数组,修饰符)

前言 kotlin学习第二篇文章!直接开始! 历史文章 [AS3.6.1]Kotlin学习笔记1 init 上篇我们讲到类的使用JavaC.class和KotlinC.kt继续扩展,首先我们讲的是初始化代码块,java和kotlin的不同!不太懂可以看下这篇文章Java初始化块(静态代码块和非静态代码块) public class JavaC { private String name = "JavaC"; private List<String> strs; {

xn的博客 841

《ActionScript 3 CookBook 简体中文完整版》下载

在ActionScript 3.0推出这样短的时间内ActionScript 3.0 CookBook 简体中文完整版公布,这对喜欢flash,喜欢AS的同仁来说无疑是一大快事,现在我们就先睹为快。 第一章. ActionScript 语言基础 第二章. 自定义类 第三章. 运行时环境 第四章. 数字和数学 第五章. 数组 第六章. 可视化对象列表 第七章. 绘图和遮罩 第八章...

weixin_34185560的博客 317
上一篇: 看书笔记二
下一篇: AS3 CookBook学习整理(一)
wayne23
博客等级 码龄21年 18粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值