JavaScript Array-Methoden

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:

javascript array splice
let arr = ["Welcome", "to", "W3Docs"]; arr.splice(1, 1); // from index 1 remove 1 element console.log(arr); // ["Welcome", "W3docs"]

Im nächsten Beispiel werden wir drei Elemente entfernen und sie durch zwei andere ersetzen:

javascript array splice javascript array splice
let arr = ["Welcome", "to", "W3Docs", "Javascript", "book"]; // remove 3 first elements and replace them with another arr.splice(0, 3, "Starts", "read"); console.log(arr) // now ["Starts", "read", "Javascript", "book"]

Nun können Sie feststellen, dass splice das Array der entfernten Elemente zurückgibt, wie folgt:

javascript array splice
let arr = ["Welcome", "to", "W3Docs", "Javascript", "book"]; // remove 2 first elements let removed = arr.splice(0, 2); console.log(removed); // "Welcome", "to" <-- array of removed elements

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:

javascript array splice
let arr = ["Welcome", "to", "W3Docs"]; // from index 2, delete 0 // then insert "Javascript" and "book" arr.splice(4, 0, "Javascript", "book"); console.log(arr); // "Welcome", "to", " W3Docs", "Javascript", "book"

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:

Javascript slice method, make subarray javascript
let arr = ["W", "3", "D", "o", "c", "s"]; console.log(arr.slice(1, 3)); // 3,D (copy from 1 to 3) console.log(arr.slice(-2)); // c,s (copy from -2 till the end)

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:

Javascript concat method, create a new array javascript
let arr = ["a", "b"]; // create an array from: arr and ["c", "d"] console.log(arr.concat(["c", "d"])); // a,b,c,d // create an array from: arr and ["c", "d"] and [e,f] console.log(arr.concat(["c", "d"], ["e", "f"])); // a,b,c,d,e,f // create an array from: arr and ["c", "d"], then add values e and f console.log(arr.concat(["c", "d"], "e", "f")); // a,b,c,d,e,f

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 splice

indexOf/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:

Javascript indexOf, includes, last index arrays
let arr = [1, 0, false]; console.log(arr.indexOf(0)); // 1 console.log(arr.indexOf(false)); // 2 console.log(arr.indexOf(null)); // -1 console.log(arr.includes(1)); // true

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:

Javascript find index in array
let animals = [{ id: 1, name: "dog" }, { id: 2, name: "cat" }, { id: 3, name: "mouse" } ]; let animal = animals.find(item => item.id == 1); console.log(animal.name); // dog

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:

Javascript filter method
let animals = [{ id: 1, name: "dog" }, { id: 2, name: "cat" }, { id: 3, name: "mouse" } ]; // returns array of the first two animals let someAnimals = animals.filter(item => item.id < 3); console.log(someAnimals.length); // 2

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:

Javascript map method
let lengths = ["dog", "cat", "mouse"].map(item => item.length); console.log(lengths); // 3,3,5

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:

Javascript sort method
let arr = [1, 3, 25]; // the method reorders the content of arr arr.sort(); console.log(arr); // 1, 25, 3

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:

Javascript sort method
function compareNumeric(a, b) { if (a > b) return 1; if (a == b) return 0; if (a < b) return -1; } let arr = [1, 3, 25]; arr.sort(compareNumeric); console.log(arr); // 1, 3, 25

umgekehrt

Diese Methode dient dazu, die Reihenfolge der Elemente in arr umzukehren.

Zum Beispiel:

Javascript reverse method
let arr = ["a", "b", "c", "d", "e"]; arr.reverse(); console.log(arr); // e,d,c,b,a

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:

Javascript split method
let animals = 'dog, cat, mouse'; let arr = animals.split(', '); for (let animal of arr) { console.log(`A message to ${animal}.`); // A message to dog (and other names) }

Ü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:

Javascript split method
let arr = 'dog, cat, mouse, lion'.split(', ', 2); console.log(arr); // dog, cat

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:

Javascript join method
let animalsArr = ['dog', 'cat', 'mouse']; let str = animalsArr.join(';'); // glue the array into a string using ; console.log(str); // dog;cat;mouse

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:

Javascript reduce method
let sumArr = [1, 2, 3, 4, 5]; let result = sumArr.reduce((sum, current) => sum + current, 0); console.log(result); // 15

Array.isArray

Arrays basieren auf Objekten.

Daher wird typeof Ihnen nicht ermöglichen, ein einfaches Objekt von einem Array zu unterscheiden:

Javascript typeof method
console.log(typeof {}); // object console.log(typeof []); // same

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:

Javascript isArray method
console.log(Array.isArray({})); // false console.log(Array.isArray([])); // true

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.

Finden Sie das nützlich?