Share via


for...in 陳述式

更新:2007 年 11 月

對物件的每個屬性 (Property) 或陣列/集合的每個元素,執行一個或多個陳述式。

for ( [var] variable in {object | array | collection})
      statement

引數

  • variable
    必要項。變數可以是 object 的任何屬性名稱、array 的任何索引或 collection 的任何元素。

  • object
    要反覆查看的 JScript 物件。

  • array
    要反覆查看的陣列。可以是 JScript Array 物件或 .NET Framework 陣列。

  • collection
    要反覆查看的集合。可以是實作 .NET Framework 中 IEnumerableIEnumerator 介面的任何類別。

  • statement
    選擇項。object 的每個屬性、array 的每個元素或 collection 要執行的陳述式。可以是複合陳述式。

備註

在每次反覆查看迴圈之前,就會將 variable 指定為 object 的下一個屬性名稱、array 的下一個索引或 collection 的下一個元素。您可以在迴圈內的任何陳述式中使用 variable,以參考 object 的屬性或 array 的元素。

逐一看一個物件時,無法決定或控制物件成員名稱指定給 variable 的順序。for...in 陳述式無法對 JScript 物件 (例如 .NET Framework 物件) 執行迴圈。

會以元素的順序來反覆查看陣列,從最小的索引開始並於最大的索引結束。由於 JScript Array 物件可能不多,因此 for...in 陳述式只存取陣列中已定義的元素。JScript Array 物件也可能有 expando 屬性,因此會將陣列索引以屬性名稱指派給 variable。如果該陣列為多維的 .NET Framework 陣列,則只會列舉出第一個維度 (Dimension)。

若是要反覆查看集合,則會依元素在集合中出現的順序指派給 variable

範例 1

以下範例說明 for ... in 陳述式和做為關聯陣列的物件搭配使用的方法。

function ForInDemo1() {
   var ret = "";

   // Initialize the object with properties and values.
   var obj : Object = {"a" : "Athens" , 
                       "b" : "Belgrade", 
                       "c" : "Cairo"};

   // Iterate over the properties.
   for (var key in obj)
      // Loop and assign 'a', 'b', and 'c' to key.
      ret += key + ":\t" + obj[key] + "\n";

   return(ret);
} // ForInDemo1

這個函式會傳回含有下列資訊的字串:

a:      Athens
b:      Belgrade
c:      Cairo

範例 2

這個範例說明如何以含有 expando 屬性的 JScript Array 物件,使用 for ... in 陳述式。

function ForInDemo2() {
   var ret = "";

   // Initialize the array.
   var arr : Array = new Array("zero","one","two");
   // Add a few expando properties to the array.
   arr["orange"] = "fruit";
   arr["carrot"] = "vegetable";

   // Iterate over the properties and elements.
   for (var key in arr)
      // Loop and assign 0, 1, 2, 'orange', and 'carrot' to key.
      ret += key + ":\t" + arr[key] + "\n";

   return(ret);
} // ForInDemo2

這個函式會傳回含有下列資訊的字串:

0:      zero
1:      one
2:      two
orange: fruit
carrot: vegetable

範例 3

下列範例說明如何以集合使用 for ... in 陳述式。在此處,System.String 物件的 GetEnumerator 方法提供了字串字元的集合。

function ForInDemo3() {
   var ret = "";

   // Initialize collection.
   var str : System.String = "Test.";
   var chars : System.CharEnumerator = str.GetEnumerator();

   // Iterate over the collection elements.
   var i : int = 0;
   for (var elem in chars) {
      // Loop and assign 'T', 'e', 's', 't', and '.' to elem.
      ret += i + ":\t" + elem + "\n";
      i++;
   }

   return(ret);
} // ForInDemo3

這個函式會傳回含有下列資訊的字串:

0:      T
1:      e
2:      s
3:      t
4:      .

需求

5 版

注意事項:

若是對集合執行迴圈,則須有 .NET 版本

請參閱

參考

for 陳述式

while 陳述式

String.GetEnumerator

其他資源

JScript 陣列