| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jun 2004 Ort: Stuttgart
Beiträge: 5
| Array wird unfreiwillig verändert
Ich habe 20 Punkte, deren x/y Positionen in baseARR abgelegt sind. Dieses Array ist praktisch die Ursprungsquelle und soll nicht verändert werden. Deshalb gibt es ein zweites Array mit folgendem Code: var containerARR = baseARR.slice(0); wenn ich das richtig verstanden habe, wird per slice ein neues Array erstellt, die kette zu baseARR also unterbrochen. In der folge werden einige Werte in containerARR in bestimmten Intervallen verändert, aber ärgerlicherweise ändert sich dabei dann auch immer gleich baseARR mit. Wie kann das sein? Ich habe die Datei mal angehängt. Komme seit gestern nicht mehr weiter. Ihr seid meine letzte Hoffnung. Vielleicht kann mir jemand auch einfach sagen, wie man eine kopie eines Arrays erstellt ohne dass dabei die geringste Verbindung zum Originial bestehen bleibt. Gruß und Danke, Matthias |
| | |
| | #2 (permalink) |
| FlashLove@FirstSight Registriert seit: Feb 2003
Beiträge: 2.460
|
Eigentlich müsste dies nicht sein, denn: slice() kopiert einen Teil des Arrays und liefert diesen als neues Array zurück. PHP-Code: PS: Ich sehe hier kein Beispiel Geändert von FLASHStyler (20-06-2004 um 12:15 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
dürfte eigentlich nicht sein is ds problem in nem kleineren kontext reproduzierbar? etwas in der art PHP-Code: bei dir muss also irgendwo die base verändert werden-explizit- oder eventuell stellste an anderer stelle doch ne verküpfung mit dem bearbeitungsarray her deluxe |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Jun 2004 Ort: Stuttgart
Beiträge: 5
| Nur die Array-Mutter wird kopiert...
Danke für die Antworten, ich hab tatsächlich mal diesen minitest gemacht und ich glaube, ich ahne langsam, woran es liegt. Trotzdem komme ich jetzt nicht weiter. Das Problem liegt bei der mehrdimensionalität: a=[[1,2],[3,4],[5,6]]; b=a.slice(0) wenn ich jetzt b[0][1]=333 zuweise, wird das auch bei a widergespiegelt. Das heisst, es wird zwar eine Kopie vom Mutter-Array erzeugt, die Kinder bleiben aber mit dem Original verbunden. Ich brauche jetzt eine einfache Funktion, die erst überprüft, ob ein element ein array ist und falls ja dieses dann ebenfalls sliced... kann da jemand helfen??? Ich pack's nicht. |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
| PHP-Code: deluxe |
| | |
| | #7 (permalink) | |
| Neuer User Registriert seit: Jan 2002 Ort: Umgebung Stuttgart
Beiträge: 5.412
|
hi, Zitat:
( hoffe deine Frage richtig verstanden zu haben, habs nur überflogen )PHP-Code:
__________________ Das Glück im Leben hängt von den guten Gedanken ab, die man hat. Easing_Equations / Flash Kontaktformular / FlashPlugin W3C konform / Nützliche Beiträge zu FAQs Geändert von :: RK :: (20-06-2004 um 18:27 Uhr) | |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jun 2001 Ort: Stuttgart
Beiträge: 6.415
|
ne er brauch doch sein anfangsarray später du änderst praktisch nur den variablennamen und sowas funktioniert natürlich dann auch nicht, was dem sinn schon näher käme PHP-Code: entgegen der vermutung dass beide eine vollständige kopie von c bekommen deluxe |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |