Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-01-2006, 07:59   #1 (permalink)
Neuer User
 
Benutzerbild von maninweb
 
Registriert seit: Mar 2005
Beiträge: 18
For x in Array Neugierfrage

Guten Morgen zusammen...

mal eine Frage aus Neugier. Warum wird bei einem assoziativen
Array, wenn man dieses mit Hilfe von "for x in arr" durchgeht,
rückwärts durchlaufen ? Wie bekommt man das "gedreht",
falls es geht.

Code:
a = new Array();
	
for (n = 1; n < 10; n++)
{
  a["Value " + n] = "Hallo " + n;
}
	
for (x in a)
{
  trace(x + " - " + a[x]);
}
Das zweite trace() ergibt...

Value 9 - Hallo 9
Value 8 - Hallo 8
Value 7 - Hallo 7
usw...


Gruss
maninweb ist offline   Mit Zitat antworten
Alt 18-01-2006, 08:58   #2 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
du kannst es dir 'richtigrum' ausgeben lassen in dem du es vor der ausgabe umkehrst

PHP-Code:
a.reverse(); 
warum das bei einem array von hinten nach vorne läuft kann ich dir auch nicht sagen, bei einem objekt tut es das nicht.
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-01-2006, 09:22   #3 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Zitat:
Zitat von mooseMash
du kannst es dir 'richtigrum' ausgeben lassen in dem du es vor der ausgabe umkehrst
Hast du das ausprobiert?
Das bringt nämlich bei nem Hash garnix...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist gerade online   Mit Zitat antworten
Alt 18-01-2006, 09:54   #4 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
wo du recht hast...
hab ich tatsächlich übersehen das hier von assoziativen arrays die rede ist, nichts für ungut.

gruß mM
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-01-2006, 10:00   #5 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
'drehen' kannst du das einfach beim erzeugen

PHP-Code:
= new Array();
    
for (
10>=1n--)
{
  
a["Value " n] = "Hallo " n;
}
    
for (
x in a)
{
  
trace(" - " a[x]);

__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-01-2006, 10:19   #6 (permalink)
.
 
Registriert seit: May 2003
Ort: bayern
Beiträge: 1.117
oder so:

PHP-Code:
= new Array();
for (
110n++)
{
  
a["Value " n] = "Hallo " n;
}

for (
x in a)
{
  
trace(" - " a[x]);
}

= new Array();
count 0;
for (
x in a)
{
    
b[x] = new Array();
    
b[x][0] = x;
    
b[x][1] = a[x];
}
trace('============================');
for(
i in b)trace(b[i][0]+' - '+b[i][1]); 
__________________
[mooseMash]
mooseMash ist offline   Mit Zitat antworten
Alt 18-01-2006, 10:36   #7 (permalink)
Neuer User
 
Benutzerbild von maninweb
 
Registriert seit: Mar 2005
Beiträge: 18
Hi...

erst mal danke für die Antworten. Beim erzeugen kann ich's erst
mal nicht umdrehen, da ich als Quelle 'ne XML-Datei verwende.
Da ist es mir auch erst aufgefallen, dass das im Verhältnis zur
XML-Element Abfolge verdreht ist.

Zweite Variante kann man nehmen, macht natürlich dann aber
einen Durchlauf mehr und wirkt sich bei einem großen Array auf
die Performance aus. Hatte gedacht, ich komm' ums umsortieren
irgendwie herum. Aber trotzdem Danke.

Gruss
maninweb ist offline   Mit Zitat antworten
Alt 18-01-2006, 12:05   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: Berlin
Beiträge: 283
Also der Grund könnte sein, das ein Array ja gefüllt wird und somit der interne Zeiger immer auf das letzte Element im Array zeigt. Wenn es nun durchlaufen wird dann beginnt die Schleife natürlich mit dem Element auf das der interne Zeiger zeigt, also das letzte hinzugefügte Element. Ich weiss nicht ob Flash eine Funktion besitzt mit der der interne Zeiger zurück auf das erste Element gesetzt werden kann und ob Flash überhaupt speichert welche Reihenfolge das assoziative Array vorweist.
__________________
ein mensch ohne macke ist kacke...
DaKinel ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele