首先,雖然叫Foreach文法但關鍵字還是用for哦,這個文法只是對平時用開的for文法的一個簡化而已。
這個文法平時最多還是用來遍曆數組,這時候每一個迴圈得到的是數組的索引(一個整形數字),然後通過數組名[整形索引]獲得數組中的對象。
但是這個文法還可以用來遍曆對象,拿到的是對象的屬性名稱(一個字串).然後通過對象名[屬性名稱]就可以拿到對象。
所以理解該文法的關鍵是理解每次迴圈得到的到底是什麼。
其實,這一功能的實現得益於javascript的數組索引可以是字串,如果不能(想想java)就沒有這齣戲唱了。
<html>
<heap>
<script type="text/javascript">
var mycolors = new Array('blue','red','yellow');
function f1(){
var content="";
for(var key in mycolors){
content += key+": "+mycolors[key]+"<br/>";
}
document.getElementById("content").innerHTML = content;
}
function User(){}
function f2(){
var u1=new User();
u1.uname="張三";
u1.age="18";
var content="";
for(var key in u1){
content += key+": "+u1[key]+"<br/>";
}
document.getElementById("content").innerHTML = content;
}
</script>
</heap>
<body>
<input type="button" id="c1" name="c1" onclick="f1();" value="click one"/>
<input type="button" id="c2" name="c2" onclick="f2();" value="click two"/>
<div id="content"></div>
</body>
</html>
點擊click one後輸出:
0: blue
1: red
2: yellow
點擊click two後輸出:
uname: 張三
age: 18
當然如果u1中有一個方法:
u1.sai=function(){
alert("hello");
}
那麼點擊click two後就輸出:
uname: 張三
age: 18
sai: function(){ alert("hello"); }
看到最後聰明的你現在應該知道如何遍曆一個JSON對象了吧,呵呵!!