Zum Hauptinhalt springen




Das Programmiersprache JavaScript tiene la posibilidad de definir una matriz de variables en un objeto llamado Array. En JavaScript, una matriz también funktioniert als Liste, Stapel oder Warteschlange.

A menudo nos encontramos con que necesitamos una colección ordenada , donde tenemos un primer, un segundo, un tercer elemento y así sucesivamente. Por ejemplo, necesitamos eso para almacenar una lista de algo: usuarios, productos, elementos HTML, etc. Y es por eso que el día de hoy empezaremos a manejar los Arrays en JS.

Wie deklariere ich ein Array?

Es gibt zwei grundlegende Syntax zum Deklarieren eines leeren Arrays.

let arr = new Array (); sei arr = [];

Der 90% der Fälle verwendet die zweite Syntax, da wir Anfangselemente in Klammern angeben können. Zum Beispiel:

Lassen Sie arr Farben ["gelb", "blau", "rot", "weiß"];

Die Elemente in einem Array haben eine eigene Aufzählung oder einen eigenen Unterindex, mit dem wir auf ein Element des Arrays zugreifen können.

Hinweis: Das erste Element beginnt immer mit dem Subindex 0 und nicht mit dem Subindex 1. Der Subindex 1 würde dem zweiten Element des Arrays entsprechen.

lass Farben ["gelb", "blau", "rot", "weiß"]; Alarm (Farben [0]); // gelber Alarm (Farben [1]); // blauer Alarm (Farben [2]); // roter Alarm (Farben [3]); // Weiß

Wir können auch Elemente des Arrays ersetzen.

Farben [3] = "grün"; // Jetzt lautet das Array: ["gelb", "blau", "rot", "grün"];

Sie können dem Array auch weitere Elemente hinzufügen.

Farben [4] = "hellblau"; // Jetzt besteht das Array aus: ["gelb", "blau", "rot", "grün", "hellblau"]

Mit können wir herausfinden, wie viele Elemente sich in einem Array befinden Länge.

lass Farben = ["gelb", "blau", "rot"]; Alarm (Farben.Länge); //3

Wir können auch verwenden aufmerksam um alle Arrays anzuzeigen.

lass Farben = ["gelb", "blau", "rot"]; Alarm (Farben); // gelb blau rot

Elemente eines beliebigen Typs können in einem Array gespeichert werden.

// mische die Werte let arr = ['gelb', {name: 'Juan'}, true, function () {alert ('hallo'); }]; // Wir erhalten das Objekt bei Index 1 und zeigen dann seinen Namen alert an (arr [1] .name); // John [php] // erhalte die Funktion bei Index 3 und führe sie aus arr [3] (); // Hallo

Pop / Push-, Shift / Unshift-Methoden

EIN Linie Es ist eine der häufigsten Verwendungen einer Matrix. Beim Rechnen bedeutet dies eine geordnete Sammlung von Elementen, die zwei Operationen unterstützt:

  1. Drücken: füge ein Element an das Ende an.
  2. Verschiebung: Sie erhalten von Anfang an ein Element, indem Sie die Warteschlange nach oben verschieben, sodass das zweite Element zum ersten wird.

Arrays unterstützen beide Operationen.

In der Praxis finden wir es sehr oft. Zum Beispiel eine Warteschlange mit Nachrichten, die auf dem Bildschirm angezeigt werden sollen.

Es gibt einen anderen Anwendungsfall für Arrays: die Datenstruktur, die als Stapel bezeichnet wird.

Unterstützt zwei Operationen:

  1. Drücken: Fügen Sie am Ende ein Element hinzu.
  2. Pop: nimm ein Element vom Ende.

So werden immer neue Elemente hinzugefügt oder daraus entnommen "Finale".

Ein Stapel wird normalerweise als Kartenspiel dargestellt - neue Karten werden oben hinzugefügt oder von oben entnommen:

Bei Stapeln wird der zuletzt geschobene Gegenstand zuerst empfangen, dies wird auch als Prinzip von bezeichnet LIFO (zuletzt rein, zuerst raus). Für die Warteschlangen haben wir FIFO (Als Erster rein, als erster raus).

Arrays in JavaScript können sowohl als Warteschlange als auch als Stapel fungieren. Sie ermöglichen das Hinzufügen / Entfernen von Elementen sowohl am Anfang als auch am Ende.

Beim Rechnen wird die Datenstruktur, die dies ermöglicht, als Deque bezeichnet.

  • Methoden, die am Ende eines Arrays oder einer Matrix verwendet werden

Pop: extrahiert das letzte Element aus dem Array und gibt es zurück.

lass Farben = ["Gelb", "Orange", "Grün"]; alert (colours.pop ()); // entferne "Grün" und alarmiere es alert (Farben); // Gelb Orange

Drücken: Fügen Sie am Ende eines Arrays ein Element hinzu.

lass Farben = ["Gelb", "Orange"]; colours.push ("Grün"); Alarm (Farben); // Gelb, Orange, Grün
  • Methoden, die am Anfang der Matrix verwendet werden

Verschiebung: extrahiert das erste Element des Arrays und gibt es zurück.

lass Früchte = ["Birne", "Orange", "Erdbeere"]; alert (obst.shift ()); // Birne entfernen und alarmieren alert (Früchte); // Orange, Erdbeere

Unshift: Fügen Sie am Anfang des Arrays ein Element hinzu:

lass Früchte = ["Kokosnuss", "Erdbeere"]; Früchte.Unverschiebung ('Orange'); Alarm (Früchte); // Orange, Kokosnuss, Erdbeere

Methoden drücken y verschieben Sie können mehrere Elemente gleichzeitig hinzufügen:

lass Früchte = ["Orange"]; Früchte.Push ("Erdbeere", "Kokosnuss"); Früchte.unshift ("Ananas", "Zitrone"); // ["Ananas", "Zitrone", "Orange", "Erdbeere", "Kokosnuss"] alert (Früchte);

Interne Manipulation der Matrix

Ein Array ist ein spezieller Objekttyp. Die eckigen Klammern für den Zugriff auf eine Eigenschaft arr [0] Sie stammen tatsächlich aus der Syntax des Objekts. Die Zahlen werden als Schlüssel verwendet.

Sie erweitern Objekte, die spezielle Methoden für die Arbeit mit geordneten Datensammlungen und auch mit der Eigenschaft bieten Länge. Aber im Kern ist es immer noch ein Objekt.

Denken Sie daran, dass es in JavaScript nur 7 Grundtypen gibt. Das Array ist ein Objekt und verhält sich daher wie ein Objekt.

Zum Beispiel wird es als Referenz kopiert:

lass Früchte = ["Banane"] lass arr = Früchte; // durch Referenz kopieren (zwei Variablen beziehen sich auf dasselbe Array) alert (arr === Früchte); // true arr.push ("Pear"); // Ändere das Array durch Referenzalarm (Früchte); // Banane, Birne - sind jetzt 2 Artikel

Aber was die Arrangements wirklich besonders macht, ist ihre interne Wiedergabe. Die Engine versucht, ihre Elemente nacheinander im zusammenhängenden Speicherbereich zu speichern, und es gibt auch andere Optimierungen, damit die Arrays sehr schnell funktionieren.

Aber sie alle brechen zusammen, wenn wir aufhören, mit einem Array als "geordnete Sammlung" zu arbeiten, und anfangen, damit zu arbeiten, als wäre es ein normales Objekt.

Zum Beispiel können wir dies technisch tun:

lass Früchte = []; // ein Array bilden Früchte [99999] = 5; // weise eine Eigenschaft mit einem Index zu, der viel höher als seine Länge ist .ruit.age = 25; // eine Eigenschaft mit einem beliebigen Namen erstellen

Dies ist möglich, da Arrays Objekte an ihrer Basis sind. Wir können ihnen jede Eigenschaft hinzufügen.

Aber die Engine wird sehen, dass wir mit der Matrix wie mit einem normalen Objekt arbeiten. Matrixspezifische Optimierungen sind für solche Fälle nicht geeignet und werden deaktiviert, ihre Vorteile verschwinden.

Die Möglichkeiten, ein Array zu missbrauchen:

  • Fügen Sie eine nicht numerische Eigenschaft wie arr.test = 5 hinzu.
  • Machen Sie Löcher wie: Fügen Sie arr [0] und dann arr [1000] hinzu (und nichts dazwischen).
  • Füllen Sie das Array in umgekehrter Reihenfolge, z. B. arr [1000], arr [999] usw.

Hinweis: Stellen Sie sich Arrays als spezielle Strukturen für die Arbeit mit geordneten Daten vor. Sie bieten dafür spezielle Methoden. Arrays werden in JavaScript-Engines sorgfältig optimiert, um mit zusammenhängenden geordneten Daten zu arbeiten. Verwenden Sie sie auf diese Weise. Und wenn Sie beliebige Schlüssel benötigen, ist es sehr wahrscheinlich, dass Sie wirklich ein normales Objekt benötigen.