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
浙公网安备 33010602011771号