Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-07-2006, 18:41   #1 (permalink)
+licht
 
Benutzerbild von view7
 
Registriert seit: Nov 2002
Beiträge: 210
Array mit for Schleife durchsuchen und bestimmte Elemente löschen!??

Möchte ein Array nach bestimmten Bedingungen durchsuchen lassen um diese Elemente, welche die Bedingung erfüllen zu löschen. Das funktioniert mit einer For-schleife jedenfalls nicht, bricht diese doch ab sobald das array ein Element kürzer wird....Kopf der for Schleife: for (w=0;w<meinarray.length;w++) So funktionierts wie gesagt nicht.... was kann ich statt dessen tun??
view7 ist offline   Mit Zitat antworten
Alt 24-07-2006, 18:44   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Du könntest die Werte, die nicht gelöscht werden,
mittels der Schleife in ein neues Array schreiben.

Am Ende löscht Du dann das alte Array und über-
schreibst es mit dem neuen Array.

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 24-07-2006, 18:46   #3 (permalink)
+licht
 
Benutzerbild von view7
 
Registriert seit: Nov 2002
Beiträge: 210
M U Ä H!! was n hardcore gescripte... gibt´s da nicht was besseres mit weniger Aufwand??
view7 ist offline   Mit Zitat antworten
Alt 24-07-2006, 19:21   #4 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Rückwärts durch das Array laufen.
mfg. r
bokel ist offline   Mit Zitat antworten
Alt 24-07-2006, 19:23   #5 (permalink)
nky
Bontempi Punk
 
Benutzerbild von nky
 
Registriert seit: Dec 2001
Ort: Dtld/Pfalz
Beiträge: 4.185
weil schneller von performance ?

gruss nky
nky ist offline   Mit Zitat antworten
Alt 24-07-2006, 19:27   #6 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Dumme Frage: Warum bricht die Schleife ab?
sebastian ist offline   Mit Zitat antworten
Alt 24-07-2006, 19:29   #7 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Nein, nicht weil es schneller ist, sondern weil sich die Einträge, die du noch zu durchlaufen hast, nicht verschieben, wenn du dahinter einen löschst.
mfg. r
bokel ist offline   Mit Zitat antworten
Alt 24-07-2006, 19:30   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Zitat:
Zitat von bokel
Nein, nicht weil es schneller ist, sondern weil sich die Einträge, die du noch zu durchlaufen hast, nicht verschieben, wenn du dahinter einen löschst.
mfg. r
Ja genau, das ist aber ja das einzige Prob (w--), aber abbrechen
sollte die Schleife trotzdem nicht.

lg
sebastian ist offline   Mit Zitat antworten
Alt 24-07-2006, 19:38   #9 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
@Sebastian:

ActionScript:
  1. var a = [1,1];
  2. for( var i = 0; i < a.length; i++){
  3.     if( a[i] == 1 ) a.splice(i,1);
  4. }

i=0; a[0] wird gelöscht; a.length = 1
i=1; i ist nicht mehr kleiner als a.length; schleife bricht ab
ergebnis: a = [1]

mfg. r

Geändert von bokel (24-07-2006 um 19:45 Uhr)
bokel ist offline   Mit Zitat antworten
Alt 24-07-2006, 19:44   #10 (permalink)
+licht
 
Benutzerbild von view7
 
Registriert seit: Nov 2002
Beiträge: 210
Y E A H! Dankeschön.
view7 ist offline   Mit Zitat antworten
Alt 24-07-2006, 19:47   #11 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Zitat:
Zitat von bokel
@Sebastian:

ActionScript:
  1. var a = [1,1];
  2. for( var i = 0; i < a.length; i++){
  3.     if( a[i] == 1 ) a.splice(i,1);
  4. }

i=0; a[0] wird gelöscht; a.length = 1
i=1; i ist nicht mehr kleiner als a.length; schleife bricht ab
ergebnis: a = [1]

mfg. r
Ja, die Wortwahl hatte mich aber etwas verwirrt. Also es bricht ja
nicht ab im Sinne von Aufhängen, wenn das Array gekürzt wird,
sondern die Schleife wird frühzeitig beendet und das auch nur, wenn
solch ein Fall am Ende des Arrays auftritt.

lg
sebastian 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 11:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele