Einführung
Einarray in JavaScript ist eine Art globales Objekt, das zum Speichern von Daten verwendet wird. Arrays bestehen aus einer geordneten Sammlung oder Liste mit null oder mehr Datentypen und verwenden nummerierte Indizes ab0
, um auf bestimmte Elemente zuzugreifen.
Arrays sind sehr nützlich, da sie mehrere Werte in einer einzigen Variablen speichern. Dadurch kann unser Code komprimiert und organisiert werden, sodass er besser lesbar und besser pflegbar ist. Arrays können beliebigedata type enthalten, einschließlichnumbers,strings undobjects.
Um zu demonstrieren, wie nützlich Arrays sein können, sollten Sie erwägen, die fünf Ozeane der Welt ihren eigenen Variablen zuzuweisen.
oceans.js
// Assign the five oceans to five variables
const ocean1 = "Pacific";
const ocean2 = "Atlantic";
const ocean3 = "Indian";
const ocean4 = "Arctic";
const ocean5 = "Antarctic";
Diese Methode ist sehr ausführlich und kann schnell schwierig zu warten und zu verfolgen sein.
Mithilfe von Arrays können wir unsere Daten vereinfachen.
oceans.js
// Assign the five oceans
let oceans = [
"Pacific",
"Atlantic",
"Indian",
"Arctic",
"Antarctic",
];
Anstatt fünf separate Variablen zu erstellen, haben wir jetzt eine Variable, die alle fünf Elemente enthält. Wir haben eckige Klammern -[]
- verwendet, um ein Array zu erstellen.
Um auf ein bestimmtes Element zuzugreifen, hängen Sie den Index an die Variable an.
// Print out the first item of the oceans array
oceans[0];
OutputPacific
In diesem Lernprogramm erfahren Sie, wie Sie Arrays erstellen. wie sie indiziert sind; wie Elemente in einem Array hinzugefügt, geändert, entfernt oder darauf zugegriffen werden; und wie man Arrays durchläuft.
Erstellen eines Arrays
Es gibt zwei Möglichkeiten, ein Array in JavaScript zu erstellen:
-
Das Array-Literal, das eckige Klammern verwendet.
-
Der Array-Konstruktor, der das Schlüsselwort
new
verwendet.
Lassen Sie uns zeigen, wie Sie mit dem Array-Literal, das mit[]
initialisiert wird, ein Array von Haiarten erstellen.
sharks.js
// Initialize array of shark species with array literal
let sharks = [
"Hammerhead",
"Great White",
"Tiger",
];
Hier sind die gleichen Daten, die mit dem Array-Konstruktor erstellt wurden, der mitnew Array()
initialisiert wird.
sharks.js
// Initialize array of shark species with array constructor
let sharks = new Array(
"Hammerhead",
"Great White",
"Tiger",
);
Beide Methoden erstellen ein Array. Die Array-Literal-Methode (eckige Klammern) ist jedoch weitaus häufiger und bevorzugter, da die Konstruktormethode vonnew Array()
Inkonsistenzen und unerwartete Ergebnisse aufweisen kann. Es ist hilfreich, sich des Array-Konstruktors bewusst zu sein, falls er später auftritt.
Wir können ein ganzes Array ausdrucken, das das gleiche wie unsere Eingabe anzeigt.
// Print out the entire sharks array
sharks;
Output[ 'Hammerhead', 'Great White', 'Tiger' ]
Arrays werden häufig verwendet, um Listen mit ähnlichen Datentypen zu gruppieren. Sie können jedoch technisch alle Werte oder Wertemischungen enthalten, einschließlich anderer Arrays.
// Initialize array of mixed datatypes
let mixedData = [
"String",
null,
7,
[
"another",
"array",
],
];
Nachdem Sie ein Array erstellt haben, können Sie es auf verschiedene Arten bearbeiten. Zunächst müssen Sie jedoch verstehen, wie Arrays indiziert werden.
[.note] #Note: Möglicherweise wird das letzte Element in einem Array mit oder ohne Komma angezeigt. Dies ist alstrailing comma bekannt. Es ist üblich, sie wegzulassen, aber im Allgemeinen wird es bevorzugt, sie in Ihren Code aufzunehmen, da dies die Unterschiede in der Versionskontrolle klarer macht und das Hinzufügen und Entfernen von Elementen ohne Fehler erleichtert. Beachten Sie, dass nachfolgende Kommas inJSON files.
# nicht zulässig sind.
Indizierung von Arrays
Wenn Sie etwas überindexing and manipulating strings in JavaScript gelernt haben, sind Sie möglicherweise bereits mit dem Konzept der Indizierung von Arrays vertraut, da eine Zeichenfolge einem Array ähnlich ist.
Arrays haben keine Name / Wert-Paare. Stattdessen werden sie mit ganzzahligen Werten indiziert, die mit0
beginnen. Hier ist ein Beispielarray, dasseaCreatures
zugewiesen ist.
seacreatures.js
let seaCreatures = [
"octopus",
"squid",
"shark",
"seahorse",
"starfish",
];
Hier ist eine Aufschlüsselung, wie jedes Element im ArrayseaCreatures
indiziert wird.
Tintenfisch | Tintenfisch | Hai | Seepferdchen | Seestern |
---|---|---|---|---|
0 |
1 |
2 |
3 |
4 |
Das erste Element im Array istoctopus
, das bei0
indiziert ist. Das letzte Element iststarfish
, das bei4
indiziert ist. Das Zählen beginnt mit0
in Indizes, was unserer natürlichen Intuition widerspricht, mit dem Zählen bei 1 zu beginnen. Daher muss besonders darauf geachtet werden, sich daran zu erinnern, bis es natürlich wird.
Mit der Eigenschaftlength
können wir herausfinden, wie viele Elemente sich in einem Array befinden.
seaCreatures.length;
Output5
Obwohl die Indizes vonseaCreatures
aus0
bis4
bestehen, gibt die Eigenschaftlength
die tatsächliche Anzahl der Elemente im Array aus, beginnend mit 1.
Wenn wir die Indexnummer eines bestimmten Elements in einem Array ermitteln möchten, z. B.seahorse
, können wir die MethodeindexOf()
verwenden.
seaCreatures.indexOf("seahorse");
Output3
Wenn keine Indexnummer gefunden wird, z. B. für einen nicht vorhandenen Wert, gibt die Konsole-1
zurück.
seaCreatures.indexOf("cuttlefish");
Output-1
Mit Indexnummern, die Elementen in einem Array entsprechen, können wir diskret auf jedes Element zugreifen, um mit diesen Elementen zu arbeiten.
Zugreifen auf Elemente in einem Array
Auf ein Element in einem JavaScript-Array wird zugegriffen, indem auf die Indexnummer des Elements in eckigen Klammern verwiesen wird.
seaCreatures[1];
Outputsquid
Wir wissen, dass0
immer das erste Element in einem Array ausgibt. Wir können das letzte Element in einem Array auch finden, indem wir eine Operation für die Eigenschaftlength
ausführen und diese als neue Indexnummer anwenden.
const lastIndex = seaCreatures.length - 1;
seaCreatures[lastIndex];
Outputstarfish
Wenn Sie versuchen, auf ein nicht vorhandenes Element zuzugreifen, werdenundefined
zurückgegeben.
seaCreatures[10];
Outputundefined
Um auf Elemente in einem verschachtelten Array zuzugreifen, fügen Sie eine weitere Indexnummer hinzu, die dem inneren Array entspricht.
let nestedArray = [
[
"salmon",
"halibut",
],
[
"coral",
"reef",
]
];
nestedArray[1][0];
Outputcoral
Im obigen Beispiel haben wir auf das Array an Position1
der VariablennestedArray
und dann auf das Element an Position0
im inneren Array zugegriffen.
Hinzufügen eines Elements zu einem Array
In unserer VariablenseaCreatures
hatten wir fünf Elemente, die aus den Indizes von0
bis4
bestanden. Wenn wir dem Array ein neues Element hinzufügen möchten, können wir dem nächsten Index einen Wert zuweisen.
seaCreatures[5] = "whale";
seaCreatures;
Output[ 'octopus',
'squid',
'shark',
'seahorse',
'starfish',
'whale' ]
Wenn wir ein Element hinzufügen und versehentlich einen Index überspringen, wird ein undefiniertes Element im Array erstellt.
seaCreatures[7] = "pufferfish";
seaCreatures;
Output[ 'octopus',
'squid',
'shark',
'seahorse',
'starfish',
'whale',
,
'pufferfish' ]
Beim Versuch, auf das zusätzliche Array-Element zuzugreifen, wirdundefined
zurückgegeben.
seaCreatures[6]
Outputundefined
Solche Probleme können mit der Methodepush()
vermieden werden, mit der ein Element am Ende eines Arrays hinzugefügt wird.
// Append lobster to the end of the seaCreatures array
seaCreatures.push("lobster");
seaCreatures;
Output[ 'octopus',
'squid',
'shark',
'seahorse',
'starfish',
,
'whale',
'pufferfish',
'lobster' ]
Am anderen Ende des Spektrums fügt die Methodeunshift()
am Anfang eines Arrays ein Element hinzu.
// Append dragonfish to the beginning of the seaCreatures array
seaCreatures.unshift("dragonfish");
seaCreatures;
Output[ 'dragonfish',
'octopus',
'squid',
'shark',
'seahorse',
'starfish',
'whale',
,
'pufferfish',
'lobster' ]
Zwischenpush()
undunshift()
können Sie Elemente an den Anfang und das Ende eines Arrays anhängen.
Entfernen eines Elements aus einem Array
Wenn wir ein bestimmtes Element aus einem Array entfernen möchten, verwenden wir die Methodesplice()
. Im ArrayseaCreatures
haben wir versehentlich zuvor ein undefiniertes Array-Element erstellt. Entfernen wir das jetzt.
seaCreatures.splice(7, 1);
seaCreatures;
Output[ 'dragonfish',
'octopus',
'squid',
'shark',
'seahorse',
'starfish',
'whale',
'pufferfish',
'lobster' ]
Bei der Methodesplice()
steht der erste Parameter für die zu entfernende Indexnummer (in diesem Fall7
), und der zweite Parameter gibt an, wie viele Elemente entfernt werden sollen. Wir setzen1
, was bedeutet, dass nur ein Element entfernt wird.
Die Methodesplice()
ändert die ursprüngliche Variable. Wenn Sie möchten, dass die ursprüngliche Variable unverändert bleibt, verwenden Sieslice()
und weisen Sie das Ergebnis einer neuen Variablen zu.
let newArray = slice(7, 1);
Die Methodepop()
entfernt das letzte Element in einem Array.
// Remove the last item from the seaCreatures array
seaCreatures.pop();
seaCreatures;
Output[ 'dragonfish',
'octopus',
'squid',
'shark',
'seahorse',
'starfish',
'whale',
'pufferfish' ]
lobster
wurde als letztes Element des Arrays entfernt. Um das erste Element des Arrays zu entfernen, verwenden wir die Methodeshift()
.
// Remove the first item from the seaCreatures array
seaCreatures.shift();
seaCreatures;
Output[ 'octopus',
'squid',
'shark',
'seahorse',
'starfish',
'whale',
'pufferfish' ]
Durch Verwendung vonpop()
undshift()
können Elemente vom Anfang und Ende von Arrays entfernt werden. Die Verwendung vonpop()
wird nach Möglichkeit bevorzugt, da die übrigen Elemente im Array ihre ursprünglichen Indexnummern beibehalten.
Elemente in Arrays ändern
Wir können jeden Wert in einem Array überschreiben, indem wir einen neuen Wert mit dem Zuweisungsoperator zuweisen, genau wie wir es mit einer regulären Variablen tun würden.
// Assign manatee to the first item in the seaCreatures array
seaCreatures[0] = "manatee";
seaCreatures;
Output[ 'manatee',
'squid',
'shark',
'seahorse',
'starfish',
'whale',
'pufferfish' ]
Eine andere Möglichkeit, einen Wert zu ändern, besteht darin, die Methodesplice()
mit einem neuen Parameter zu verwenden. Wenn wir den Wert vonseahorse
ändern möchten, der das Element bei Index3
ist, können wir ihn entfernen und an seiner Stelle ein neues Element hinzufügen.
// Replace seahorse with sea lion using splice method
seaCreatures.splice(3, 1, "sea lion");
seaCreatures();
Output[ 'manatee',
'squid',
'shark',
'sea lion',
'starfish',
'whale',
'pufferfish' ]
Im obigen Beispiel haben wirseahorse
aus dem Array entfernt und einen neuen Wert in den Index3
verschoben.
Durchschleifen eines Arrays
Wir können das gesamte Array mit dem Schlüsselwortfor
durchlaufen und dabei die Eigenschaftlength
nutzen. In diesem Beispiel können wir ein Array vonshellfish
erstellen und jede Indexnummer sowie jeden Wert auf der Konsole ausdrucken.
// Create an array of shellfish species
let shellfish = [
"oyster",
"shrimp",
"clam",
"mussel",
];
// Loop through the length of the array
for (let i = 0; i < shellfish.length; i++) {
console.log(i, shellfish[i]);
}
Output0 'oyster'
1 'shrimp'
2 'clam'
3 'mussel'
Wir können auch diefor...of
-Schleife verwenden, eine neuere Funktion von JavaScript.
// Create an array of aquatic mammals
let mammals = [
"dolphin",
"whale",
"manatee",
];
// Loop through each mammal
for (let mammal of mammals) {
console.log(mammal);
}
Outputdolphin
whale
manatee
Diefor...of
-Schleife ruft nicht die Indexnummer der Elemente im Array ab, ist jedoch im Allgemeinen eine einfachere und präzisere Methode zum Durchlaufen eines Arrays.
Die Verwendung von Schleifen ist äußerst nützlich, um den gesamten Wert eines Arrays auszudrucken, z. B. beim Anzeigen von Elementen aus einer Datenbank auf einer Website.
Fazit
Arrays sind ein äußerst vielseitiger und grundlegender Bestandteil der Programmierung in JavaScript. In diesem Tutorial haben wir gelernt, wie Sie ein Array erstellen, wie Arrays indiziert werden und einige der häufigsten Aufgaben bei der Arbeit in Arrays, z. B. das Erstellen, Entfernen und Ändern von Elementen. Wir haben auch zwei Methoden zum Durchlaufen von Arrays gelernt, die als übliche Methode zum Anzeigen von Daten verwendet werden.
Weitere Informationen zu anderen Datentypen in JavaScript finden Sie in unserem Lernprogramm "https://www.digitalocean.com/community/tutorials/understanding-data-types-in-javascript[Datentypen in JavaScript verstehen".