Array-Methoden
Dauer: 20 Minuten
- Arrays bieten viele Methoden
- Beispiele:
splice
,slice
,find
,filter
,map
Ziel: Möglichkeiten mit Arrays ausschöpfen
Arrays bieten in JavaScript
zahlreichhe Methoden
für unterschiedliche Situationen. In einer
früheren Lektion
wurden bereits die Methoden push
zum Hinzufügen
eines Elements in ein Array und forEach
zum
Durchlaufen eines Arrays erwähnt.
Hier werden weitere praktische Beispiel-Methoden gezeigt.
Elemente entfernen mit splice
splice
ist eine mächtige Methode, um den Inhalt eines
Arrays zu verändern. Ein Beispiel, das zeigt,
wie ein bestimmtes Element entfernt wird:
const colors = ["orange", "blue", "red", "green"];
// entferne ein Element ab Index zwei (red)
colors.splice(2,1);
console.log(colors);
// --> ["orange", "blue", "green"];
Hier bezeichnet das erste Argument (2
) den
Start-Index und das zweite Argument (1
) die
Anzahl der ab dem Start-Index zu entfernenden
Elemente.
splice
bietet noch viel mehr Möglichkeiten, wie
hier in MDN nachzulesen.
Bei splice
ist zu beachten, dass das Array
verändert wird. Im Gegensatz dazu liefert
slice
(!) eine Kopie des Arrays.
Teile eines Arrays mit slice
kopieren
Mit slice
lassen sich Teile eines Arrays
kopieren. Hierbei wird das Array selbst nicht
verändert. Zum Beispiel können wir alle Elemente
ab einem bestimmten Index bis zum Ende des
Arrays als neues Array kopieren:
const colors = ["orange", "blue", "red", "green"];
// kopiere alle Elemente ab dem zweiten Index ("red")
const colors2 = colors.slice(2);
// colors2 ist ein neues Array:
console.log(colors2);
// --> ["red", "green"];
// colors wurde nicht verändert!
console.log(colors);
// --> ["orange", "blue", "red", "green"];
Auch slice
ist eine flexible Methode, siehe
dazu die Beschreibung in MDN.
slice
liefert eine Kopie des Arrays. Im
Gegensatz verändert splice
(!) direkt das Array.
find
Mit find
können Arrays durchsucht werden.
find
erhält dazu eine Testfunktion, die solange
auf jedes Element des Arrays angewendet wird,
bis die Testfunktion für ein Element true
als Rückgabewert liefert. Dazu ein Beispiel:
const colors = ["orange", "gray", "red", "green"];
const color = colors.find(item => item.startsWith('g'));
console.log(color); // --> gray
Hier wird eine Testfunktion als Pfeilfunktion
an find
übergeben. find
hat true
als
Rückgabewert, wenn ein Element (also ein
Farbname) mit dem Buchstaben g
beginnt.
Hier wird also "gray"
als Ergebnis von
find
herauskommen.
Es gibt weitere Funktionen, die ebenfalls mit einer Testfunktion ausführt.
filter
Bei find
wird lediglich das erste Element
geliefert, für das die Testfunktion den
Wert true
ergibt. Mit filter
lassen sich
hingegen alle Elemente „filtern“, die eine
bestimmte Bedingung erfüllen:
const colors = ["orange", "gray", "red", "green"];
const gColors = colors.filter(item => item.startsWith('g'));
console.log(gColors); // --> [ "gray", "green" ]
filter
liefert also ein neues Array, das alle
Elemente enthält, für die die Testfunktion
true
ergibt. Das Ausgangsarray wird dabei
nicht verändert.
map
Manchmal ist es erforderlich, alle Elemente
eines Arrays umzuformen. Dies ist mit map
möglich:
const colors = ["orange", "gray", "red", "green"];
const uColors = colors.map(item => item.toUpperCase());
console.log(uColors);
// --> [ "ORANGE", "GRAY", "RED", "GREEN" ]
Hierbei wird keine Testfunktion an map
übergeben, sondern eine „Umwandlungsfunktion“,
die auf jedes Element im Array angewendet wird.
Heraus kommt ein neues Array mit den umgewandelten
Werten und das ursprüngliche Array bleibt erhalten.
Tipp: Für viele Situationen, in denen
ein Array z.B. mit einer for
-Schleife
durchlaufen wird, gibt es häufig eine
passende Array-Methode, die zu der gewünschten
Situation passt und den Code vereinfachen kann.
Es gibt einige weitere Array-Methoden, die in
bestimmten Situationen nützlich sein können
(sort
,reverse
,concat
,join
, u.v.a.m)
— siehe dazu die folgenden Weblinks.
Vertiefendes Material