for ( [var] variable in {object | array | collection})
statement
在循环的每一次循环之前,会为 variable 分配 object 的下一个属性名、array 的下一个索引或 collection 的下一个元素。 您可以将 variable 用于循环中的任何语句,以便引用 object 的属性或 array 的元素。
当在一个对象上循环时,没有办法确定或控制将对象的成员名赋给 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