Arrays

Ein Array ist eine geordnete Menge von Werten, auf die mit einem ganzzahligen Index zugegriffen werden kann. Die Array-Werte müssen nicht vom gleichen Typ sein, so kann ein Array z.B. Strings Numbers Boolean usw enthalten. Es gibt zwei Möglichkeiten um ein Array in JavaSript zu deklarieren:

Array-Beispiele

var arr = [element1, element2, element3];
var arr = new Array(element1, element2, element3);

In jedem Fall liefert der Operator typeof nicht array wie man vielleicht vermuten würde, sondern object.

typeof arr; //liefert object

Verwenden sie die Browser-Konsole um JavaScript Code auf dieser Seite zu testen.

Ein Array erzeugen

Der Vorteil von Arrays besteht in erster Linie dadurch, dass sie mehrere Werte in einer Variablen aufnehmen können. Array-Elemente werden mit einem Komma getrennt, Textelemente müssen in Anführungszeichen stehen. Achtung bei der Schreibweise in der literalen Version: Eckige Klammern! Der Aufruf von Arrays erfolgt über den Variablennamen und dem Index in eckigen Klammern. Der Index von JavaSript Arrays beginnt immer bei 0.

var script = ["HTML", "CSS", "JavaScript", "PHP"];
script[1]; // liefert CSS

Ein leeres Array erzeugen

Ein Array kann auch ohne Inhalt erzeugt und später befüllt werden.

var script = []; // Literal
var script = new Array(); // Mit new (Konstruktor)

script[0] = "HTML";
script[1] = "CSS";
script[2] = "JavaScript";
script[3] = "PHP";

script[0]; //liefert HTML

Die length -Eigenschaft

Die length -Eigenschaft eines Arrays gibt die Länge eines Arrays zurück (die Anzahl der Array-Elemente). Achtung, die Zählung beginnt hier bei eins (1).

var script = ["HTML", "CSS", "JavaScript", "PHP"];
script.length; // liefert 4

Achtung bei der Initialisierung von einem Array mit nur einem Element und das Element ist auch noch eine Zahl.

// Erzeugt ein Element mit dem Wert 15:
var arr = [15];

// Erzeugt ein Array mit 15 Einträgen undefined   
var arr = new Array(15);

// Dasselbe noch einmal als Literal 
var arr = [];
arr.length = 15;

Arrays mit unterschiedlichen Datentypen

Arrays sind auch Objekte und können Variablen mit unterschiedlichen Objekt-Typen aufnehmen. Arrays können z.B. Objekte, Funktionen, Arrays usw. beinhalten.

var myFunction = function() {return "Hallo Welt"};
var myObject = { firstName:"Adi", lastName:"Prinz", age:60 };
var myArray = ["Hallo", 65, false];

var myDate = new Date(1955, 3, 13);
myFunction = myFunction();
myObject = myObject.firstName;
myArray = myArray[0];

var myArr = [];
myArr[0] = myDate; // Datum
myArr[1] = myFunction; // Eine Funktion
myArr[2] = myObject; // Ein Object 
myArr[3] = "Ein Text"; // String
myArr[4] = 25 // Number
myArr[5] = true // Boolean
myArr[6] = myArray  // Array

myArr[6]; // liefert Hallo

Mehrdimensionale Arrays

JavaScript-Arrays können auch mehrdimensional sein. Werte eines Arrays können wiederum Arrays sein. Assoziative Arrays (wie z.B. in PHP) sind in JavaScript mit Array-Objekten nicht möglich. JavaScript-Arrays erlauben den Zugriff auf die Elemente nur über den Index.

var Person = [];

Person[0] = new Array();
Person[0][0] = "Adi";
Person[0][1] = "Prinz";
Person[0][2] = "Badhofgastein";

Person[1] = new Array();
Person[1][0] = "Harald";
Person[1][1] = "Maier";
Person[1][2] = "Salzburg";

Person[2] = new Array();
Person[2][0] = "Julia";
Person[2][1] = "Müller";
Person[2][2] = "Moskau";

Person[2][0]; // liefert Julia

Arrays mit einer for Schleife erzeugen

Im nächsten Beispiel wird ein Array mit 4 Elementen definiert. Dann wird in einer for-Schleife für jedes dieser Elemente ein neues Array mit 3 Elementen definiert. Anschließend wird das zweite Element [1] im vierten Array [3] angesprochen und der Wert "Hallo Welt" zugewiesen.

var arr = new Array(4);

for (var i = 0; i < arr.length; ++i) {
arr[i] = new Array(3);
}

arr[3][1] = "Hallo Welt";
arr[3][1];

Assoziative Arrays

Im Gegensatz zu anderen Programmiersprachen gibt es in JavaScript keine assoziativen Arrays. JavaScript erlaubt den Zugriff auf die Elemente lediglich über den Index (indiziertes Array).

Objekte in Arrays

Bei assoziative Arrays erfolgt der Zugriff auf einzelne Elemente mit Hilfe einer Zeichenkette. Die Zeichenkette wird als Schlüssel für den Zugriff bezeichnet. Mit einem Trick kann man auch in JavaSript assoziative Arrays simulieren, indem weitere Dimensionen als Object deklariert werden.

var Person = new Array(3);

Person[0] = new Object();
Person[0]["Vorname"] = "Adi";
Person[0]["Nachname"] = "Prinz";
Person[0]["Wohnort"] = "Bad Hofgastein";

Person[1] = new Object();
Person[1]["Vorname"] = "Harald";
Person[1]["Nachname"] = "Prinz";
Person[1]["Wohnort"] = "Salzburg";

Person[2] = new Object();
Person[2]["Vorname"] = "Julia";
Person[2]["Nachname"] = "Prinz";
Person[2]["Wohnort"] = "Moskau";

for (var i = 0; i < Person.length; i++) {
for (var value in Person[i]) {
console.log(Person[i][value]);
}
}

Eigenschaften und Methoden von Arrays

Wenn man den ganzen Umfang von JavaSripct-Arrays nutzen will, muss man Eigenschaften und Methoden von Arrays kennen. Sie finden hier Links für Referenzen der JavaSripct-Eigenschaften und Methoden.

w3schools.com

wiki.selfhtml.org

developer.mozilla.org