Array-metoder
Arrays har innebygde metoder, funksjoner som hører til arrayen og lar deg gjøre ting med den. Du kaller en metode med punktum: tall.push(4) ber arrayen tall om å utføre handlingen push.
Jeg vil ...
Legge til med push()
.push() legger til en eller flere verdier på slutten av arrayen. Arrayen vokser.
append i Python
I Python heter metoden .append(), ikke .push(). Den gjør det samme: legger til én verdi på slutten.
append i GDScript
Som i Python heter metoden .append(). GDScript har også push_back(), som gjør det samme.
Du kan også legge til flere verdier på én gang:
Fjerne med pop()
.pop() fjerner den siste verdien i arrayen. Men den gjør også noe annet: den returnerer verdien som ble fjernet.
Selv om du ikke tar vare på returverdien, returnerer .pop() den likevel. Verdien bare kastes.
Se push og pop i aksjon
push og pop endrer arrayen
Både .push() og .pop() endrer den originale arrayen. Den vokser eller krymper. Det lages ingen kopi.
Filtrere arrays med filter()
Noen ganger trenger du ikke hele arrayen, bare de verdiene som oppfyller en bestemt betingelse. Da bruker du .filter().
.filter() går gjennom hvert element, sjekker det mot en betingelse, og returnerer en ny array med bare de elementene som bestod.
Legg merke til at tall ikke endres. .filter() lager en helt ny array. Originalen er trygg.
List comprehension i Python
Python har ikke en .filter()-metode på lister slik JavaScript har. I stedet bruker vi list comprehension: [x for x in liste if betingelse]. Det er den vanlige måten å filtrere på i Python.
Lese filter-uttrykket
Steg for steg:
tall.filter(...)gå gjennom hvert element itallt => t > 6for hvert elementt, sjekk: ertstørre enn 6?- Hvis ja → ta med i den nye arrayen
- Hvis nei → hopp over
Gjøre om verdier med map()
Noen ganger vil du ikke plukke ut elementer, men gjøre noe med hvert element og få en ny array tilbake. Da bruker du .map().
.map() går gjennom hvert element, kjører en funksjon på det, og returnerer en ny array med resultatene. Lengden er alltid den samme som originalen.
Akkurat som .filter() lager .map() en helt ny array. Originalen røres ikke.
List comprehension i Python
Python bruker list comprehension i stedet for .map(): [uttrykk for x in liste]. Det er den vanlige måten å transformere lister på i Python.
Lese map-uttrykket
Steg for steg:
tall.map(...)gå gjennom hvert element itallt => t * 2for hvert elementt, regn utt * 2- Legg resultatet inn i den nye arrayen
Forskjellen: endre vs. lage ny
Det er viktig å forstå forskjellen mellom metoder som endrer arrayen og metoder som lager en ny array:
| JavaScript | Python | GDScript | Hva den gjør | Endrer originalen? |
|---|---|---|---|---|
.push() |
.append() |
.append() |
Legger til på slutten | Ja |
.pop() |
.pop() |
.pop_back() |
Fjerner siste element | Ja |
.filter() |
list comprehension | .filter() |
Plukker ut elementer | Nei, lager ny |
.map() |
list comprehension | .map() |
Gjør om hvert element | Nei, lager ny |
Denne forskjellen blir viktigere jo mer komplisert koden din blir. Når du bruker .filter(), vet du at originaldataene alltid er trygge.