Compartir a través de


for...in (Instrucción)

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
    Obligatorio. Variable que puede ser cualquier nombre de propiedad de object, cualquier índice de array o cualquier elemento de collection.

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

  • matriz
    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()
{
    // 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);
}

Esta función devuelve la cadena que contiene lo siguiente.

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()
{
    // Initialize the array.
    var arr = 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
    // and create the string result.
    var s = "";
    for (var key in arr)
    {
        s += key + ":  " + arr[key];
        s += "\n";
    }
    
    return (s);
}

Esta función devuelve la cadena que contiene lo siguiente.

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()
{
    // Initialize the collection.
    var str : System.String = "Test.";
    var chars : System.CharEnumerator = str.GetEnumerator();

    // Iterate over the collection elements and
    // create the string result.
    var s = "";

    var i : int = 0;
    for (var elem in chars)
    {
        s += i + ": " + elem
        s += "\n";

        i++;
    }

    return(s);
}

Esta función devuelve la cadena que contiene lo siguiente.

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