In JavaScript gibt es eine Vielzahl von Array-Methoden. Um Ihnen detailliertere und umfassendere Informationen zu geben, werden wir sie in Gruppen unterteilen.
Hinzufügen/Entfernen von Methoden
Im Kapitel Arrays haben wir bereits über diese Gruppe von Methoden gesprochen. Dazu gehören:
- arr.push(...items) - hilft beim Hinzufügen von Elementen am Ende;
- arr.pop() - Extrahierung eines Elements vom Ende;
- arr.shift() - Extrahierung eines Elements vom Beginn;
- arr.unshift(...items) - Hinzufügen von Elementen am Anfang.
In diesem Kapitel werden wir über einige andere Methoden sprechen.
Verbinden
Die erste Methode ist die arr.splice. Sie wird verwendet, um Elemente zu einem Array hinzuzufügen oder aus ihm zu entfernen und die bereits entfernten zurückzugeben. So können Sie mit dieser Methode alles machen: Einfügen, Entfernen, Ersetzen von Elementen.
Die Syntax sieht so aus:
arr.splice(index[, deleteCount, elem1, ..., elemN])
Es ist leichter zu verstehen, wenn man es an einem Beispiel sieht.
Im ersten Beispiel wird die Löschung wie folgt demonstriert:
Im nächsten Beispiel werden wir drei Elemente entfernen und sie durch zwei andere ersetzen:
Nun können Sie feststellen, dass splice das Array der entfernten Elemente zurückgibt, wie folgt:
Es ist wichtig zu wissen, dass Sie mit dieser Methode auch Elemente einfügen können, ohne etwas zu entfernen. Dazu müssen Sie deleteCount auf 0 setzen, so:
Teilmenge
arr.slice ist eine einfache Methode, viel einfacher als arr.splice.
Die Syntax ist folgende:
arr.slice([start], [end])
Diese Methode gibt ein neues Array zurück und kopiert alle Elemente von der Indexposition start bis zur Position end (die jedoch nicht inklusive ist). Wenn beide Indexpositionen start und end negativ sind, wird angenommen, dass es sich um die Positionen vom Ende des Arrays handelt.
Es ist ähnlich wie die end Methode, erstellt aber Unterarrays anstatt Substrings.
Hier ist ein Beispiel:
Sie können es auch ohne Argumente aufrufen: str.slice erstellt eine Kopie von arr.
Zusammenfügen
Die arr.concat Methode wird verwendet, um ein neues Array zu erstellen, das Werte aus anderen Arrays und zusätzliche Elemente enthält. Die Syntax sieht dann so aus:
arr.concat(arg1, arg2...)
Es akzeptiert Argumente in beliebiger Menge (Arrays oder Werte).
Das Ergebnis wird ein neues Array mit den Elementen von arr, dann arg1, arg2 usw. sein.
Falls ein Argument argN ein Array ist, werden alle seine Elemente kopiert. In anderen Fällen wird das Argument kopiert.
Zum Beispiel:
Iterieren: forEach
Die Methode arr.forEach ermöglicht es, eine Funktion für jedes Element des Arrays auszuführen.
Die Syntax sieht so aus:
arr.forEach(function (item, index, array) {
// ... do something with item
});
Im folgenden Beispiel wird jedes Element des Arrays angezeigt:
// for each element call alert
["dog", "cat", "mouse"].forEach(alert);
Suche im Array
In diesem Teil behandeln wir die Methoden für die Suche in einem Array.
javascript array spliceindexOf/lastIndexOf and includes
Diese Methoden haben die gleiche Syntax und machen das Gleiche wie ihre String-Gegenstücke. Der Unterschied besteht darin, dass sie auf Elemente und nicht auf Zeichen operieren.
Was sie tun:
- arr.indexOf(item, from) sucht nach einem item beginnend vom Index from und gibt es zurück, wenn es gefunden wurde, sonst -1.
- arr.lastIndexOf(item, from) ist ähnlich, sucht aber von rechts nach links.
- arr.includes(item, from) sucht nach einem item, beginnend vom Index from, und gibt true zurück, wenn es gefunden wurde.
Lassen Sie uns das beispielhaft überprüfen:
Bedenken Sie, dass diese Methoden den Vergleich === verwenden. Wenn Sie also nach false suchen, wird es false und nicht null finden.
Finden und FindeIndex
Angenommen, Sie haben ein Array mit Objekten und wollen ein Objekt nach einer bestimmten Bedingung finden. Dann müssen Sie die Methode arr.find(fn) verwenden, die diese Syntax hat:
let result = arr.find(function (item, index, array) {
// if true is returned,the item is returned, and iteration is stopped
// for falsy scenario returns undefined
});
Die Funktion wird für die Elemente des Arrays nacheinander aufgerufen, und zwar so:
- Ein item ist ein Element.
- Der index ist sein Index.
- Das array ist das Array selbst.
Wenn true zurückgegeben wird, wird die Suche abgebrochen und das item- zurückgegeben.
Zum Beispiel:
Filter
Diese Methode sucht nach dem ersten Element, das die Funktion true zurückgeben lässt.
Wenn es viele solcher Elemente gibt, können Sie die Methode arr.filter(fn) verwenden. Die Syntax sieht aus wie bei find, aber die filter-Methode gibt ein Array mit allen passenden Elementen zurück:
let results = arr.filter(function (item, index, array) {
// if true item is pushed to results and the iteration continues
// returns empty array if nothing found
});
Hier ist ein Beispiel:
Umformung eines Arrays
In diesem Teil behandeln wir die Methoden, die darauf abzielen, ein Array zu transformieren und neu anzuordnen.
abbilden
Diese Methode ist eine der nützlichsten und am häufigsten verwendeten. Die Syntax sieht so aus:
let result = arr.map(function (item, index, array) {
// returns the new value instead of item
});
In diesem Beispiel wird jedes Element in seine Länge umgewandelt:
sortieren(fn)
Diese Methode wird verwendet, um das Array an Ort und Stelle zu sortieren und die Reihenfolge der Elemente zu ändern.
Lassen Sie uns das folgende Beispiel betrachten:
Im Ausgabewert finden Sie etwas recht Seltsames. Die Reihenfolge sah so aus: 1, 25, 3
Der Grund dafür ist, dass die Elemente als Strings geordnet sind.
Alle Elemente werden für Vergleiche in Strings konvertiert. Es wird die lexikographische Ordnung für Strings verwendet ( "3" > "25").
Um Ihre eigene Sortierreihenfolge zu verwenden, müssen Sie eine Funktion als Argument der arr.sort()-Methode bereitstellen.
Hier ist ein Beispiel:
umgekehrt
Diese Methode dient dazu, die Reihenfolge der Elemente in arr umzukehren.
Zum Beispiel:
Es kann auch das Array arr nach der Umkehrung zurückgeben.
teilen und verbinden
Die Methode str.split(delim) wird verwendet, um den String anhand eines bestimmten Trennzeichens delim in ein Array aufzuteilen.
Im folgenden Beispiel wird es durch ein Komma gefolgt von einem Leerzeichen geteilt:
Übrigens hat diese Methode ein optionales numerisches Argument, das eine Begrenzung für die Länge eines Arrays ist. Wenn es angegeben wird, werden zusätzliche Elemente ignoriert. Trotzdem verwenden Entwickler es nicht oft.
Das Beispiel sieht dann so aus:
Wenn Sie das split umkehren wollen, rufen Sie arr.join(glue) auf. Es wird einen String der arr Elemente erstellen, zusammen mit dem glue zwischen ihnen. Hier ist ein Beispiel:
reduce/reduceRight
Für die Iteration über ein Array können Sie forEach, for, oder for..of anwenden.
Wenn Sie iterieren und die Daten für jedes Element zurückgeben möchten, kann map verwendet werden.
Die arr.reduce und arr.reduceRight Methoden machen ähnliche Aktionen, sind aber ein wenig komplizierter. Sie können sie verwenden, um einen Wert auf der Grundlage des Arrays zu berechnen.
Die Syntax ist wie folgt:
let value = arr.reduce(function (accumulator, item, index, array) {
// ...
}, [initial]);
Die Argumente sind:
- der accumulator ist das Ergebnis des vorherigen Funktionsaufrufs, gleich initial beim ersten Mal;
- das item kann als aktuelles Array-Element beschrieben werden.
- der index ist seine Position.
- das array ist das Array.
In diesem Beispiel können Sie die Summe eines Arrays in einer einzigen Zeile finden:
Array.isArray
Arrays basieren auf Objekten.
Daher wird typeof Ihnen nicht ermöglichen, ein einfaches Objekt von einem Array zu unterscheiden:
Aber Entwickler verwenden Arrays so oft, dass es eine spezielle Methode dafür gibt: Array.isArray(value). Sie gibt true zurück, wenn der Wert ein Array ist und false wenn nicht.
Das Beispiel sieht folgendermaßen aus:
Quizzeit: Testen Sie Ihre Fähigkeiten!
Sind Sie bereit, das Gelernte herauszufordern? Tauchen Sie ein in unsere interaktiven Quizze für ein tieferes Verständnis und eine unterhaltsame Art, Ihr Wissen zu festigen.