Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-09-2005, 13:19   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 60
Mehrdimensionales Array-Element löschen

Hallo,

habe folgeden Array aufbau:

ActionScript:
  1. meinArray[0][x,y,z,a,b,c]
  2. meinArray[1][x,y,z,a,b,c,d]
  3. meinArray[2][x,y,z,a,b]
  4. usw
  5.  
  6. meinArray[0].length ist dann zb 10!

wenn ich dann

ActionScript:
  1. meinArray[0].splice(0);
( will meinArray[0][x,y,z,a,b,c] komplett löschen! )

mache, dann ist danach die länge immernoch 10!

Was kann ich dagegen machen?
agent007 ist offline   Mit Zitat antworten
Alt 08-09-2005, 13:37   #2 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 106
Die Länge der zu löschenden Elemente angeben......

bei array.splice() musst du einen Startpunkt setzen, das hast du mit 0 gemacht, aber es fehlt die Länge der zu löschenden Elemente
array.splice(0,2);
sollte Element 0 und die zwei darauf Folgenden löschen.
toastar26 ist offline   Mit Zitat antworten
Alt 08-09-2005, 13:52   #3 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
hello,

wenn es dir nur ums löschen geht, kannst du das array mit delete ausradieren:
ActionScript:
  1. delete meinArray[0];
dann ist es weg, hat dann aber nicht die länge 0 sondern undefined .

meinArray[0].splice(0); muss gehen.
@toastar26:
Zitat:
Array.splice()
Availability
Flash Player 5.

Usage
my_array.splice(start:Number, deleteCount:Number [, value0:Object, value1...valueN]) : Array

Parameters
start An integer that specifies the index of the element in the array where the insertion or deletion begins.

deleteCount An integer that specifies the number of elements to be deleted. This number includes the element specified in the start parameter. If no value is specified for deleteCount, the method deletes all the values from the start element to the last element in the array. If the value is 0, no elements are deleted.

value An optional parameter that specifies the values to insert into the array at the insertion point specified in the start parameter.
es muss wohl an was anderem liegen, dass dein splice nicht geht, denn so geht es auf jeden fall:
ActionScript:
  1. var my_array:Array = new Array();
  2. my_array[0] = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
  3.  
  4. trace(my_array[0].length);
  5. my_array[0].splice(0);
  6. trace(my_array[0].length);
  7. delete my_array[0];
  8. trace(my_array[0].length);
  9.  
  10. //trace:
  11. //10
  12. //0
  13. //undefined
  14.  

also, wenn du das array komplett löschen willst, nimm delete array[0];

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 08-09-2005, 14:01   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 106
Schande über mein Haupt, sorry.........
toastar26 ist offline   Mit Zitat antworten
Alt 08-09-2005, 14:05   #5 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 60
Zitat:
Zitat von toastar26
Schande über mein Haupt, sorry.........


ne, ich habe ja in der Hilfe gelesen!
delete habe ich aber auch probiert und irgendwie ist die länge bei mir immernoch 10 danach!

ich werde es nochmal testen!
agent007 ist offline   Mit Zitat antworten
Alt 08-09-2005, 14:07   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 60
ups es geht auch um

meinArray.length

so jetzt stimmt meine frage
agent007 ist offline   Mit Zitat antworten
Alt 08-09-2005, 15:17   #7 (permalink)
muh
 
Benutzerbild von Janoscharlipp
 
Registriert seit: Apr 2002
Ort: Freiburg / Stuttgart
Beiträge: 4.338
Was denn nun? Schreib mal hin, was du für ein Ausgangsarray hast, und was du für eines danach haben willst.
__________________
»Carpe diem«, sagte der Graf. (Terry Pratchett: Ruhig Blut!)
Janoscharlipp ist offline   Mit Zitat antworten
Alt 09-09-2005, 10:34   #8 (permalink)
Neuer User
 
Registriert seit: Mar 2004
Beiträge: 60
Zitat:
Zitat von Janoscharlipp
Was denn nun? Schreib mal hin, was du für ein Ausgangsarray hast, und was du für eines danach haben willst.
davor:


ActionScript:
  1. [COLOR=DarkRed]meinArray[0][x,y,z,a,b,c][/COLOR] // diesen löschen
  2. meinArray[1][x,y,z,a,b,c,d]
  3. meinArray[2][x,y,z,a,b]
  4. trace(meinArray.length); // hier noch 3
  5.  
  6.  
  7. delete meinArray[0]; // löschen vom ersten komplett - rot markiert
  8.  
  9. trace(meinArray.length) // solten doch jetzt nur noch 2 sein oder?
  10.  
agent007 ist offline   Mit Zitat antworten
Alt 09-09-2005, 13:42   #9 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
ok, alles klar, jetzt verstanden ,
dazu am besten meinArray.shift() benutzen. diese methode entfernt das erste element eines arrays und returned dies, trace(meinArray.shift()) gibt dir also meinArray[0] aus, während meinArray.length ab dann jedoch 2 ist.

geht aber auch mit meinArray.splice(0,1)! damit kannst du halt genau sagen, welches element du löschen willst und wieviele, shift() nimmt immer nur das erste.
ActionScript:
  1. meinArray[0][x,y,z,a,b,c] // diesen löschen
  2. meinArray[1][x,y,z,a,b,c,d]
  3. meinArray[2][x,y,z,a,b]
  4. trace(meinArray.length); // hier noch 3
  5.  
  6.  
  7. meinArray.shift(); // löschen vom ersten komplett - rot markiert
  8. trace(meinArray.length) // ist jetzt 2
  9. meinArray.splice(1):
  10. trace(meinArray.length) // 1
  11.  

gruß janosch
janoshnosh 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 22:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele