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); // --> grayHier 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