Share via


Istruzione for...in

Aggiornamento: novembre 2007

Esegue una o più istruzioni per ogni proprietà di un oggetto o per ogni elemento di una matrice o di un insieme.

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

Argomenti

  • variable
    Obbligatorio. Variabile che può essere qualsiasi nome di proprietà di object, qualsiasi indice di array o qualsiasi elemento di collection.

  • object
    Oggetto JScript su cui eseguire l'iterazione.

  • array
    Matrice su cui eseguire l'iterazione. Può essere un oggetto Array di JScript o una matrice .NET Framework.

  • collection
    Un insieme su cui eseguire l'iterazione. Può essere qualsiasi classe che implementi le interfacce IEnumerable o IEnumerator di .NET Framework.

  • statement
    Facoltativo. Istruzioni da eseguire per ogni proprietà di object o per ogni elemento di array o di collection. Può trattarsi di un'istruzione composta.

Note

Prima di ogni iterazione di un ciclo, a variable viene assegnato il successivo nome di proprietà di object, il successivo indice di array o il successivo elemento di collection. È possibile utilizzare variable in qualsiasi istruzione all'interno del ciclo per fare riferimento alla proprietà di object o all'elemento di array.

Quando si esegue l'iterazione su un oggetto, non è possibile determinare o controllare in alcun modo l'ordine in cui i nomi dei membri dell'oggetto vengono assegnati a variable. L'istruzione for...in non può eseguire un ciclo nei membri di oggetti che non sono JScript, quali gli oggetti .NET Framework.

L'iterazione delle matrici avviene in ordine di elemento, a partire dall'indice più piccolo fino a quello più grande. Dal momento che gli oggetti Array di JScript possono trovarsi in punti lontani del codice, l'istruzione for...in accede solo agli elementi definiti della matrice. Gli oggetti Array di JScript possono inoltre avere proprietà expando e in tal caso a variable vengono assegnati indici di matrici come nomi di proprietà. Se la matrice è una matrice .NET Framework multidimensionale, solo la prima dimensione verrà enumerata.

Per quanto riguarda l'iterazione su un insieme, gli elementi vengono assegnati a variable nell'ordine in cui appaiono nell'insieme.

Esempio 1

Nell'esempio seguente viene illustrato l'utilizzo dell'istruzione for ... in con un oggetto utilizzato come matrice associativa.

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

Questa funzione restituisce la stringa che contiene:

a:      Athens
b:      Belgrade
c:      Cairo

Esempio 2

Nel seguente esempio viene illustrato l'utilizzo dell'istruzione for ... in con un oggetto Array di JScript avente proprietà 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

Questa funzione restituisce la stringa che contiene:

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

Esempio 3

Nell'esempio seguente viene illustrato l'utilizzo dell'istruzione for ... in con un insieme. Il metodo GetEnumerator dell'oggetto System.String fornisce un insieme dei caratteri della stringa.

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

Questa funzione restituisce la stringa che contiene:

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

Requisiti

Versione 5

Nota:

L'esecuzione di cicli su insiemi richiede Versione .NET.

Vedere anche

Riferimenti

Istruzione for

Istruzione while

String.GetEnumerator

Altre risorse

Matrici JScript