다음을 통해 공유


for...in 문

업데이트: 2007년 11월

개체의 각 속성이나 컬렉션 또는 배열의 각 요소에 대해 하나 이상의 문을 실행합니다.

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

인수

  • variable
    필수적 요소. object의 속성 이름, array의 인덱스 또는 collection의 요소가 될 수 있는 변수입니다.

  • object
    반복 계산할 JScript 개체입니다.

  • array
    반복 계산할 배열입니다. JScript Array 개체나 .NET Framework 배열이 될 수 있습니다.

  • collection
    반복 계산할 컬렉션입니다. .NET Framework에서 IEnumerable 또는 IEnumerator 인터페이스를 구현하는 모든 클래스가 될 수 있습니다.

  • statement
    선택적 요소. 각 object 속성이나 각 array 또는 collection 요소에 대해 실행할 문입니다. 복합 문도 가능합니다.

설명

루프를 반복 계산하기 전에 object의 다음 속성 이름이나 array의 다음 인덱스 또는 collection의 다음 요소에 variable을 할당합니다. object 속성이나 array 요소를 참조하기 위해 루프 안에 있는 모든 문에서 variable을 사용할 수 있습니다.

개체에서 반복 계산할 때는 개체 멤버 이름을 variable에 할당하는 순서를 결정하거나 조정할 방법이 없습니다. for...in 문에서는 .NET Framework 개체 같은 JScript 개체가 아닌 개체의 멤버를 루프에 사용할 수 없습니다.

배열은 가장 작은 인덱스에서부터 가장 큰 인덱스까지 요소 순서대로 반복 계산됩니다. JScript Array 개체는 밀도가 낮으므로 for...in 문에서는 배열의 정의된 요소에만 액세스합니다. JScript Array 개체에 expando 속성이 있을 수도 있습니다. 이 경우 variable은 속성 이름으로 배열 인덱스에 할당됩니다. 배열이 다차원 .NET Framework 배열이면 첫 번째 차원만 열거됩니다.

컬렉션에 대한 반복 계산의 경우 요소는 컬렉션에 표시되는 순서대로 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 배열