for...in 和 for each...in的一些区分和用法

本文对比了for(...in...)与foreach(...in...)两种循环结构在处理数组与对象时的不同应用场景。前者用于遍历属性名,后者用于遍历属性值。通过示例说明了如何使用这两种循环来处理XML数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

for(..in..)的用途是对一个对象中所有的属性名称(注意是属性名称或索引编号,而不是属性值)进行逐个访问或者对数组中的每一个下标进行逐个访问。
for each(..in..)结构的用途是对一个对象中的所有属性值(此处是属性值而不是属性名称)或者对数组中的每一个元素值,而不是属性名称(或索引、主键)进行逐个访问。此集合可以是 XML 对象、一般对象或数组。

下面先看一下简单用例:

 1 var myArray:Array = [{"one","two","three"];
 2 for (var i:Object in myArray)
 3 {
 4     trace(myArray[i]);
 5 }
 6 //output
 7 //one
 8 //two
 9 //three
10 for each (var j:Object in myArray)
11 {
12     trace(j);
13 }
14 //output
15 //one
16 //two
17 //three

for in 得到的是相当于hash表里的key值....for each in 得到的是 value值

关于遍历显示对象的问题:

使用for each...in 或者 for...in只能遍历到有实例名的对象。(此处原因不明。所以用的时候还需要多加注意)

关于遍历XML对象的用法:

xml非常常用很多用法经常会忘掉了。之后会专门详细介绍和xml的使用也借此巩固自己的知识。

 1 var myXML:XML =
 2 <order>
 3 <item id='1' quantity='2'>
 4 <menuName>burger</menuName>
 5 <price>3.95</price>
 6 </item>
 7 <item id='2' quantity='2'>
 8 <menuName>fries</menuName>
 9 <price>1.45</price>
10 </item>
11 </order>;
12 
13 var total:Number = 0;
14 for (var pname:String in myXML.item)
15 {
16 total += myXML.item.@quantity[pname] * myXML.item.price[pname];
17 }
18 trace(total);
19 var total2:Number = 0;
20 for each (var prop:XML in myXML.item)
21 {
22 total2 += prop.@quantity * prop.price;
23 }
24 trace(total2);
25 //outout
26 //10.8
27 //10.8

很多API只需要看一遍帮助文档。用过几次便可牢记。所以尽量去尝试多敲代码。多多使用一些不常用的API这样知识才会全面。代码才会写的得心应手!

 

 

 

转载于:https://www.cnblogs.com/huagame/archive/2012/09/22/2697844.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值