for ( [var] variable in {object | array | collection})
statement
在循環的每一次循環以前,會爲 variable 分配 object 的下一個屬性名、array 的下一個索引或 collection 的下一個元素。 您能夠將 variable 用於循環中的任何語句,以便引用 object 的屬性或 array 的元素。spa
當在一個對象上循環時,沒有辦法肯定或控制將對象的成員名賦給 variable 的順序。 for...in 語句沒法在非 JScript 對象的成員上循環,例如,.NET Framework 對象。
數組按元素順序循環,從最小的索引開始,到最大的索引結束。 由於 JScript Array 對象多是稀疏的,因此 for...in 語句只訪問數組中已定義的元素。 JScript Array 對象還能夠具備 expando 屬性,在這種狀況下,會爲 variable 分配數組索引做爲屬性名。 若是數組是多維 .NET Framework 數組,則只枚舉第一維。
爲了在集合上循環,會按元素在集合中的顯示順序將元素分配給 variable。
下面的示例闡釋了 for ... in 語句的用法,該語句將一個對象用做一個相關數組。
function ForInDemo1() { // Initialize the object. var obj = {"a" : "Athens" , "b" : "Belgrade", "c" : "Cairo"} // Iterate over the properties and create the string result. var s = "" for (var key in obj) { s += key + ": " + obj[key]; s += "\n"; } return (s); }
此函數返回包含如下內容的字符串:
a: Athens b: Belgrade c: Cairo