Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-07-2003, 13:20   #1 (permalink)
c.milischewski
Gast
 
Beiträge: n/a
Wie lösche ich den Inhalt eines Arrays?

Hallo zusammen,

hab ein kleines Problem!

Ich speicher mehrere Zahlen in einem Array ab! Beim betätigen des Button wird die entsprechende Zahl in den Array geschrieben! Wie kann ich genau diese Zahl durch erneutes betätigen der Schaltfläche wieder aus dem Array löschen? (ich will nicht den ganzen Array löschen, nur diese entsprechende Zahl).

Ich danke euch allen schon mal im voraus und hoffe einer kann mir helfen
  Mit Zitat antworten
Alt 22-07-2003, 13:26   #2 (permalink)
.........................
 
Benutzerbild von designtherapie
 
Registriert seit: Nov 2002
Beiträge: 393
ActionScript:
  1. for (var i = 0; i<myArray.length; i++) {
  2. if (myArray[i] == gesuchtezahl ) {myArray.splice(i,1)}
  3. }

müsste klappen

gruß Tim
__________________
Design ist keine Geschmackssache
Flashtreffen in Hamburg
designtherapie ist offline   Mit Zitat antworten
Alt 22-07-2003, 13:47   #3 (permalink)
c.milischewski
Gast
 
Beiträge: n/a
Danke schön.
  Mit Zitat antworten
Alt 22-07-2003, 13:58   #4 (permalink)
filmtip: snatch
 
Registriert seit: Oct 2001
Beiträge: 1.562
oder benutz doch einfach die array methoden

push/pop
shift/unshift

gruss skyla
Skyla ist offline   Mit Zitat antworten
Alt 22-07-2003, 15:36   #5 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
myArray.length = 0

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 22-07-2003, 15:54   #6 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
das sind ja immer interessante sachen, die der bokel sich da aussm ärmel schüttelt. thanx

p.s. obwohl: würde nicht auch das hier gehen?

ActionScript:
  1. myArray=new Array()
__________________
bei fragen, fragen.

Geändert von Smirgel (22-07-2003 um 15:55 Uhr)
Smirgel ist offline   Mit Zitat antworten
Alt 22-07-2003, 16:01   #7 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505


Der feine, aber evtl. wichtige Unterschied ist der, dass du ein neues Array erzeugst, das ist etwas anderes als ein bestehendes Array zu leeren.

ActionScript:
  1. a = [1,2,3];
  2. b = a;
  3. a.length = 0;
  4. trace("a:" + a + " b:" + b);
  5. trace("------------------")
  6. a = [1,2,3];
  7. b = a;
  8. a = [];
  9. trace("a:" + a + " b:" + b);

Ausgabe
a: b:
------------------
a: b:1,2,3

Eine andere, sauberere Möglichkeit ist splice
ActionScript:
  1. a = [1,2,3];
  2. a.splice(0, a.length);
  3. trace("a:" + a);

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 22-07-2003, 16:09   #8 (permalink)
alien
 
Benutzerbild von Smirgel
 
Registriert seit: May 2002
Ort: Colonia
Beiträge: 7.597
jo, okay.
danke
__________________
bei fragen, fragen.
Smirgel ist offline   Mit Zitat antworten
Alt 22-07-2003, 17:15   #9 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
@bokel....bleibt dann nicht trotzdem eine objectreferenz auf das array gespeichert ? weil die länge wird ja noch mit 0 angezeigt

ich weiss auch, dass benannte arrayelemente mit delete gelöscht werden können, ein index jedoch mit delete nicht gelöscht wird, sondern sein wert auf undefined gesetzt wird

ein trace auf die länge eines indiziierten arrays, dass durch delete gelöscht wird, zeigt mir aber auch undefined an

ich bin dadurch etwas verwirrt weil ein delete eines elements das element nicht löscht, ein delete auf das ganze array aber das array anscheinend löscht


ist das richtig ?(das steht nicht in moocks buch )

grz majo




hi smirgel
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 22-07-2003, 18:00   #10 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
@majo
Nach Smirgels Methode wird die Referenz auf das Array durch die Referenz auf ein anderes Array ersetzt. Alle anderen Referenzen auf das ursprüngliche Array bleiben erhalten.

Die anderen Methoden dagegen ändern das gegebene Array selbst und das zeigt sich dann eben auch überall dort, wo es noch Referenzen auf das Array gibt.

wg. delete
Mit delete meinArray wird nur die Referenz auf das Array gelöscht, nicht das Array selbst. D.h. wenn es noch andere Referenzen gibt, bleibt das Array erhalten:

ActionScript:
  1. a = [1,2,3];
  2. b = a;
  3. delete a;
  4. trace(b);
bokel ist offline   Mit Zitat antworten
Alt 22-07-2003, 18:23   #11 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
thx bokel

was ich aber nicht verstehe ist, wenn die referenz auf das array gelöscht wird und das array weiter besteht müsste es doch eigenschaften wie zb. länge haben

ein trace gibt aber undefined aus

hoffe das war verständlich....mein wie kann etwas da sein....aber doch nicht
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 22-07-2003, 18:33   #12 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Das Problem ist, dass die alte Referenz nicht mehr existiert, also undefined ist, und damit auch keine Eigenschaften mehr besitzt. Die andere Referenz b besitzt weiterhin alle Eigenschaften des Arrays.

mfg .r
bokel ist offline   Mit Zitat antworten
Alt 22-07-2003, 18:49   #13 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
jo ralf....ich denk ich habs geschnallt

das array ist noch da, da aber der wegweiser zum array weg ist kann es über das "deletete" nicht mehr gefunden werden

war das so richtig ?
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 22-07-2003, 19:00   #14 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Genau so ist es. Mit dem Delete rasierst du die Wegweiser aber das Ziel der Wegweiser bleibt erhalten.

mfg .r
bokel 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 15:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele