Avatar billede Slettet bruger
09. april 2007 - 16:57 Der er 9 kommentarer og
2 løsninger

Hurtigt spørgsmål om Arrays

Hej eksperter!

Hvordan "kopieres" et Array?
Således:

var ARRAY1:Array = new Array("Hej", "verden!");
var ARRAY2:Array = new Array();
ARRAY2 = ARRAY1;

?
Avatar billede kragekjaer Praktikant
09. april 2007 - 18:04 #1
var ARRAY1:Array = new Array("Hej", "verden!");
var ARRAY2:Array = new Array();
ARRAY2 = ARRAY1.slice();
Avatar billede alexander_j Nybegynder
09. april 2007 - 18:06 #2
På den måde laver du en pointer eller pegepind til arrayet - hvilket betyder, at du blot har flere variabelnavne der peger på det samme array.

Du bliver nød til at gennemløbe arrayet og kopiere enkelt elementerne i arrayet over i det nye array.

I dit simple tilfælde er det nok med:
for(var i:Number=0 ; i < ARRAY1.length ; i++ ) {
  ARRAY2[i] = ARRAY1[i];
}
Avatar billede Slettet bruger
09. april 2007 - 19:06 #3
Hm, jeg mente nok, det var mere besværligt...
Hvordan sletter jeg så lettest et element fra et Array?
Havde tænkt på noget med splice og join, men det kan jo hurtigt blive kompliceret, hvis hele Array'et ikke kan kopieres.
Nu gentager jeg mig selv: Hvordan sletter jeg så lettest et element fra et Array?
Avatar billede alexander_j Nybegynder
09. april 2007 - 21:26 #4
Jeg plejer at bruge splice.
Avatar billede Slettet bruger
10. april 2007 - 09:16 #5
Gief eksempel tak :)
Avatar billede kragekjaer Praktikant
10. april 2007 - 12:09 #6
slå splice op i hjælp i Flash
Avatar billede kragekjaer Praktikant
10. april 2007 - 12:13 #7
OG alexander, du tager vist fejl:

Returns a new array that consists of a range of elements from the original array, without modifying the original array. The returned array includes the startIndex element and all elements up to, but not including, the endIndex element.

If you don't pass any parameters, a duplicate of the original array is created.
Avatar billede alexander_j Nybegynder
10. april 2007 - 13:50 #8
Hmm lyder underligt - for umiddelbart virker det - se eksemplet herunder:
var myarray:Array = new Array(1,2,3);
var e:Number = 1;

trace(myarray);
myarray.splice(n,1);
trace(myarray);
Avatar billede alexander_j Nybegynder
10. april 2007 - 13:53 #9
Burde naturligvis være:
var myarray:Array = new Array(1,2,3);
var e:Number = 1;

trace(myarray);
myarray.splice(e,1);
trace(myarray);
Avatar billede Slettet bruger
10. april 2007 - 17:18 #10
Nu fandt jeg ud af det!
Tak alle, bare smid nogle svar.
Avatar billede alexander_j Nybegynder
10. april 2007 - 18:25 #11
Nogle svar
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

IT-JOB