AS3: For-Each-Schleife für unterschiedliche Items in einem Array

Um alle Items eines Arrays, Vektors oder Objektes zu durchlaufen, verwendet man normalerweise eine For-Each-Schleife wie diese:

var myArray:Array = ["AxxG", "rockt", "total", "!!!"];
for each (var item:String in myArray)
{
	trace(item);
	// Ausgabe: AxxG rockt total !!!
}

var myNumArray:Array = [1, 2, 3, 4, 5, 6, 7];
for each (var item:uint in myNumArray)
{
	trace(item);
	// Ausgabe 1 2 3 4 5 6 7
}

Was passiert, wenn man unterschiedliche Datentypen in einem Array verwendet? Genau, eine Exception wird geworfen. Nicht sehr schön für den Programmierer, aber hier kommt die Lösung:

var myArray:Array = [111, "AxxG", "rockt", "mindestens", 1000000000000, "Mal", "!!!", 111];
for each (var item:* in myArray)
{
	if (item is String)
	{
		trace("Das Item ist ein String mit dem Wert: " + item);
	}
	else if (item is Number)
	{
		trace("Das Item ist ein Number mit dem Wert: " + item);
	}
}

/* Ausgabe 
 * Das Item ist ein Number mit dem Wert: 111
 * Das Item ist ein String mit dem Wert: AxxG
 * Das Item ist ein String mit dem Wert: rockt
 * ...
*/




Kommentar verfassen