Avatar billede phest Juniormester
27. september 2019 - 11:40 Der er 2 kommentarer og
1 løsning

array skifter indhold når bare jeg outputter den

Hej, for tiden sidder jeg og nørkler med at lære mig lidt javaScript. Jeg følger WC3 Schools kursus, og er rigtig glad for det. Dog bøvler jeg lige nu lidt med at forstå, hvorfor arrays fungerer, som de gør. Svaret er sikkert oplagt, men nu spørger jeg alligevel .

Lidt kontekst først.

Jeg har forstået så meget, at man kan man kan manipulere værdieme i en array. At man kan skifte dem ud, slette dem,klippe den sidste af, lægge nye til osv. Men jeg forstår ikke, hvorfor de bliver lavet om, når jeg skriver dem til skærmen

Den illustrative kode følger:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
document.write (fruits);


Min forventning er umiddelbart, at linjen

<b>document.write ("5." + fruits.pop()+"</br>");</b>
Avatar billede phest Juniormester
27. september 2019 - 12:28 #1
fortsættelse...

... outputter ordet Mango, og at den iøvrigt ikke ændre på variablen. På det første punkt  har min forventning ret, på det andet punkt tager den fejl.

For hvis jeg føjer en fjerden linie til ....

document.write (fruits)

... så har den også fjernet mango fra arrayen. Og det er lidt mærkeligt, synes jeg, når jeg ikke har bedt den om andet end at outputt
Avatar billede softspot Forsker
27. september 2019 - 13:03 #2
Slå pop-funktion op på W3C Schools og læs der, at pop returnerer OG fjerner det sidste element i array'et (og ændrer dermed array'et).

https://www.w3schools.com/jsref/jsref_pop.asp
Avatar billede ejvindh Ekspert
27. september 2019 - 13:33 #3
...så hvis du gerne vil se det sidste element, uden at fjerne det, skal du have fat i noget lignende:
document.write(fruits[fruits.length-1])

Eller:
document.write(fruits.slice(-1)[0])
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

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