Avatar billede maqhem Nybegynder
28. februar 2009 - 17:40 Der er 2 kommentarer og
1 løsning

Hvorfor findes Array.clone() ikke?

Hej.

Denne kode viser tydeligt, hvad mit problem er:

---

var A:Array = [1, 2, 3];
var B:Array = [];

Change_A();

trace(A);
trace(B);

function Change_A():void {
    B = A;
    A[0] = 4;
    A[1] = 5;
    A[2] = 6;
}

---

Hvorfor ændres B sammen med B? Det, kan jeg regne ud, er på grund af linjen B = A - men hvorfor? Sådan er det jo ikke med strings og sådan. Og hvordan kommer jeg nemmest muligt uden om det? Jeg tænker, jeg kan lave noget a là:

---
function Change_A():void {
    B = new Array().concat(A);
    A[0] = 4;
    A[1] = 5;
    A[2] = 6;
}
---

Men det kan ikke passe, det skal være min løsning. Det er jo ulækkert.
Avatar billede andersbro Nybegynder
01. marts 2009 - 20:56 #1
Du kan bruge
B = A.slice();
B = A.substr();
B = A.substring();

så vidt jeg lige kan gennemskue
Avatar billede maqhem Nybegynder
24. december 2009 - 12:00 #2
Ja tak, smid et svar. Gammelt spørgsmål... Du får pointene :)
Avatar billede maqhem Nybegynder
17. december 2010 - 11:18 #3
Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester