for..in 和 for each..in 的区别:
1
var
myObj:Object
=
{x:
20
, y:
30
};
2 for ( var i:String in myObj) {
3 trace (i + " : " + myObj[i]);
4 }
5 // output:
6 // x: 20
7 // y: 30
2 for ( var i:String in myObj) {
3 trace (i + " : " + myObj[i]);
4 }
5 // output:
6 // x: 20
7 // y: 30
由上代码可知道
for..in 是把数组的元数或对象的属性名依次取过来。
1
var
myObj:Object
=
{x:
20
, y:
30
};
2 for each( var num in myObj) {
3 trace (num);
4 }
5 // output:
6 // 20
7 // 30
2 for each( var num in myObj) {
3 trace (num);
4 }
5 // output:
6 // 20
7 // 30
由上代码可知道
for each..in 是把对象的属性名对应的值依次取过来。
1
var
myArray:Array
=
[
"
one
"
,
"
two
"
,
"
three
"
];
2 for ( var i:String in myArray) {
3 trace (myArray[i]);
4 }
5 /* output
6 one
7 two
8 three
9 */
10
2 for ( var i:String in myArray) {
3 trace (myArray[i]);
4 }
5 /* output
6 one
7 two
8 three
9 */
10
如果用
for each..in 返回将是 undefined 。对于XML文档:
1
var
myXML:XML
=
<
users
>
2 < fname > Jane </ fname >
3 < fname > Susan </ fname >
4 < fname > John </ fname >
5 </ users > ;
6 for ( var item in myXML.fname) {
7 trace(item);
8 }
9 /* output
10 0
11 1
12 2
13 */
14
2 < fname > Jane </ fname >
3 < fname > Susan </ fname >
4 < fname > John </ fname >
5 </ users > ;
6 for ( var item in myXML.fname) {
7 trace(item);
8 }
9 /* output
10 0
11 1
12 2
13 */
14
如果用
for each..in 返回的将是:
1
/*
output
2 Jane
3 Susan
4 John
5 */
6
2 Jane
3 Susan
4 John
5 */
6
由此可以粗略的了解这两者的不同之处。
文章来源: http://computer.mblogger.cn/yang007/posts/55940.aspx