Compartir a través de


for...in (Instrucción)

Actualización: noviembre 2007

Ejecuta una o más instrucciones para cada propiedad de un objeto o cada elemento de una matriz o colección.

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

Argumentos

  • variable
    Necesario. Variable que puede ser cualquier nombre de propiedad de object, cualquier índice de array o cualquier elemento de collection.

  • object
    Objeto de JScript que se va a recorrer en iteración.

  • array
    Matriz que se va a recorrer en iteración. Puede ser un objeto Array de JScript o una matriz de .NET Framework.

  • collection
    Colección que se va a recorrer en iteración. Puede ser cualquier clase que implemente las interfaces IEnumerable o IEnumerator desde .NET Framework.

  • statement
    Opcional. Instrucciones que se van a ejecutar para cada propiedad de object o cada elemento de array o collection. Puede ser una instrucción compuesta.

Comentarios

Antes de cada iteración del bucle, se asigna el argumento variable al siguiente nombre de propiedad de object, al siguiente índice de array o al siguiente elemento de collection. Se puede utilizar variable en cualquiera de las instrucciones del bucle para hacer referencia a la propiedad de object o al elemento de array.

Cuando se recorre en iteración un objeto, no se puede determinar o controlar el orden en que los nombres de miembros del objeto se asignan al argumento variable. La instrucción for...in no puede recorrer los miembros de objetos que no sean de JScript, como los objetos de .NET Framework.

Las matrices se recorren en iteración en el orden de los elementos, comenzando por el índice menor y terminando por el mayor. Dado que los objetos Array de JScript pueden ser dispersos, la instrucción for...in obtiene acceso sólo a los elementos definidos de la matriz. Los objetos Array de JScript también pueden tener propiedades expando, en cuyo caso a variable se le asignan índices de matriz como nombres de propiedad. Si la matriz es una matriz multidimensional de .NET Framework, sólo se enumerará la primera dimensión.

Para recorrer en iteración una colección, los elementos se asignan a variable en el orden en que aparecen en la colección.

Ejemplo 1

El ejemplo siguiente muestra el uso de la instrucción for ... in con un objeto que se utiliza como una matriz asociativa.

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

Esta función devuelve la cadena que contiene.

a:      Athens
b:      Belgrade
c:      Cairo

Ejemplo 2

En este ejemplo se muestra el uso de la instrucción for ... in con un objeto Array de JScript que tiene propiedades expando.

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

Esta función devuelve la cadena que contiene.

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

Ejemplo 3

En el siguiente ejemplo se muestra el uso de la instrucción for ... in con una colección. Aquí, el método GetEnumerator del objeto System.String proporciona una colección de los caracteres de la cadena.

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

Esta función devuelve la cadena que contiene.

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

Requisitos

Versión 5

Nota:

Para recorrer colecciones es necesaria la versión .NET.

Vea también

Referencia

for (Instrucción)

while (Instrucción)

String.GetEnumerator

Otros recursos

Matrices de JScript