Javascript-Array

Arrays und Listen in Javascript

Ein Array ( Liste, Vektor ) fasst mehrere Variable unter einem gemeinsamen Namen zusammen. Auf dieser Seite finden sie eine Zusammenstellung von Themen zur Verwendung von Arrays in Javascript.
Damit sollen bestehende Referenzen und Tutorials ergänzt werden.
Javascript ECMAScript für HTML und XML
Array-Type Schlüssel, Index und Array-Type
Definition Erzeugung und Initialisierung von Arrays (JSON)
Eigenschaften Type, Anzahl der Elemente eines Arrays
Lesen & Schreiben Einfacher Zugriff auf Array-Elemente
Schleifen Bearbeitung von Array-Elementen in Schleifen (loops)
Mehrdimensionale Arrays Tabellen, Arrays in 2, 3 und mehr Dimensionen
Array → Funktion Arrays als Argumente an Unterprogramme übergeben
Funktion → Array Arrays aus Funktionen zurückgeben
Datenspeicher Arrays als Stapel oder Warteschlange
Sortieren Elemente eines Arrays sortieren
String Umwandlung Text (String) - Array (join,split)
Werkzeug Diverses Array-Werkzeug (concat,slice,splice)
Verwandte Themen JSON (Details), Arrays in PHP, Perl, VBA

Array-Type und Schlüssel (Index)

Javascript kennt nur eine Array-Type.
Zur Kennzeichnung und Unterscheidung der einzelnen Elemente wird eine ganze Zahl>=0 verwendet, dafür sind die Begriffe Schlüssel und/oder Index üblich.
Das erste Element trägt immer den Index [0], das zweite [1] usw.
Diese Art der Array-Organisation ist besonders schnell und geht sparsam mit dem Speicher um, da der Index selbst nicht gespeichert, sondern nur zur Berechnung der Adresse (pointer) verwendet wird.
Vermeiden sie die Verwendung großer Index-Zahlen für wenige Elemente.
Wenn für ein Array z.B. nur die Elemente [10000] bis [10003] benötigt werden, dann werden von Javascript ungefragt auch die Elemente [0] bis [10000] erzeugt.
Moderne Programmierung verlangt angeblich nach assoziativen Arrays, in denen Worte (Text, string) als Schlüssel verwendet werden.
Javascript bietet (derzeit) keine assoziativen Arrays, z.B.
color['r']=123; color['g']=234; color['b']=34;
Wenn sie derartige Arrays unbedingt benötigen, dann muss eine Hilfs-Konstruktion (Mehrdimensionales Array) verwendet werden.

Definition und Initialisierung

Leeres Array

Der Befehl new Array() erzeugt ein neues leeres Array mit dem gewählten Namen (hier a). Die Anzahl der Elemente muss dabei nicht angegeben werden und beträgt zunächst 0.
Javascript verwaltet Arrays mit dynamischer Länge, d.h. die benötigte Länge wird später bei der Verwendung angepasst.
Als Array-Namen sind alle zulässigen Namen möglich. Hier werden kurze Namen verwendet, um die Beispiel-Texte kurz zu halten.

var a = new Array();
// Reservierung mit Schleife
// for(i=0;i<100;i++) {a[i]=0;}
Vorsicht !
Wenn sie ein leeres Array global definieren, um es später in verschiedenen Funktionen zu verwenden, dann kann es zu Problemen mit der Speicher-Reservierung kommen.
Solche Laufzeit-Fehler sind sehr schwer zu finden.
Abhilfe:
Initialisieren sie sofort nach der Definition so viele Elemente, wie später maximal benötigt werden. Damit wird der Speicher reserviert und später sind alle Array-Elemente fehlerfrei verwendbar.

Array mit leeren Anfangs-Elementen

Wenn bei der Definition eine einzige positive ganze Zahl oder eine entsprechende Variable als Argument verwendet wird, dann wird ein Array dieser Länge erzeugt. Im Beispiel wird b mit 3 Elementen erzeugt, c mit 5 Elementen.
Alle Elemente eines so erzeugten Arrays haben den Wert undefined.
Damit ist nur die vorläufige Länge (Anzahl der Elemente) festgelegt, später kann das Array erweitert oder verkürzt werden.

var b = new Array(3);
var dimc = 5;
var c = new Array(dimc);
Verwenden sie diese Methode besser nicht, da sie missverständlich ausgelegt werden kann. Ein Array mit einem einzigen Zahlen-Element wird so definiert:
var c1 = new Array();
c1[0] = 123;

Array mit Initialisierung

Wenn bereits bei der Definition die Werte aller Elemente bekannt sind, dann werden diese als Argumente eingetragen, mit Beistrich getrennt.
Dabei können beliebige Variablen-Typen gemischt werden:
Array ca enthält Zahlen, dabei können ganze und Gleitkomma-Zahlen gemischt werden.
Array cb enthält Texte (strings), Array cc Zahlen und Texte.
Ein Element lässt sich auch auf den Wert null setzen (Unterschied zur Zahl 0).
Ein Array (Beispiel ce) kann als Elemente auch andere Arrays enthalten. Dabei ergeben sich mehrdimensionale Arrays
Ein Array (Beispiel cf) kann auch Objekte enthalten.

Probleme:   (Alle Beispiele f0..f2 ergeben Fehler !)
Vermeiden sie die Initialisierung mit einem einzigen Element, insbesondere mit einer Zahl, weil das als Versuch interpretiert wird, ein Array mit entsprechend vielen leeren Elementen anzulegen.
Ein Element darf nicht übersprungen werden, deshalb ergibt die Definition von f2 einen Fehler.

var ca = new Array(11,22,3.1416);
var cb = new Array("Anton","Berta");
var cc = new Array(44,"Dora",55);
var cd = new Array(11,null,33);
var ce = new Array(ca,cc);
var cf = new Array();
cf[0] = new Date();
// Fehler !
var f0 = new Array(1.234);
var f1 = new Array(-2);
var f2 = new Array(11,,33);
JSON-Variante:
var jar = ["Anna",123,"Bert",45,"Christa"];
Diese Syntax-Variante ist gleichwertig: An Stelle der Anweisung new Array() werden eckige [] verwendet. Mit JSON-Syntax werden normalerweise keine leren Arrays definiert, sondern Arrays komplett mit allen Daten.
In modernen Web-Anwendungen ("Web2") werden häufig Daten im JSON-Format über das Internet transportiert.
Details zur JSON-Variante und zu ihrer Verwendung mit Ajax

Daten-Übergabe an Javascript

Diese Art der Initialisierung eignet sich besonders gut zur automatisierten Übergabe von Daten an Javascript, d.h. durch andere Programme. Sie wird in diesem Web häufig verwendet.

Javascript:
Zu Beginn wird ein leeres Array b erzeugt, dazu eine Index-Variable i, die auf 0 gesetzt wird. Danach erfolgt die Übergabe der Daten: Jede Programmzeile erzeugt ein zusätzliches Element von Array b. Der Index i wird nach jeder Zuweisung um +1 erhöht.

PHP:
Das Beispiel zeigt, wie der Javascript-Code durch ein PHP-Script-Programm (am Webserver) erzeugt wird:
Zunächst werden die Daten als PHP-Array $b angelegt - In der Praxis können die Daten mit PHP beliebig angefordert werden, z.B. aus einer Datenbank oder aus anderen Webseiten.
Der fixe Javascript-Code wird in Klartext eingetragen.
Zur Übergabe der Daten wird eine foreach-Schleife verwendet. Jeder Durchlauf erzeugt eine Zeile Javascript-Text und damit ein Element des JS-Arrays.

Vorteile dieser Technik:
Die Daten-Übergabe (das PHP-Programm) am Webserver wird nur einmalig ausgeführt, das Javascript-Programm kann auf Client-Seite beliebig oft verwendet werden, ohne den Webserver zu belasten.
Javascript-Code
var b = new Array();
var i = 0;
b[i++] = 12;
b[i++] = 34;
b[i++] = 567;
// usw.
PHP-Code
<?php
$b=array(12,34,567);
?>
<script type="text/javascript">
var b = new Array();
var i=0;
<?php
foreach($b as $bi) {
print "b[i++]=".$bi.";\n";
}
?>
</script>

Array-Eigenschaften:   Existenz, Type, Anzahl der Elemente

Der Operator typeof

Javascript kennt keine Variablen-Type Array. Die Bestimmung der Type mit dem Operator typeof ergibt den Wert object, den man als Wort (string) testen kann. Das ist leider nicht eindeutig, da es auch andere Objekte gibt, aber immerhin ein Hinweis, auf den man reagieren kann.
Der Operator typeof kann auch verwendet werden, um festzustellen, ob ein Array existiert. Wenn ein Array oder eine Variable des angegebenen Namens existiert, dann wird die Type zurückgegeben, ansonsten der Wert undefined (und zwar ohne Auslösung eines Fehlers !).
Natürlich kann man mit typeof auch die Type jedes einzelnen Array-Elements bestimmen.

var c = new Array(11,22,33);
alert("typeof c = "+typeof c);

Test mit einer bedingten Verzweigung:
if(typeof c=="object") {
alert("typeof c == object");
}
else {alert("typeof c != object");}

Länge lesen

Javascript-Arrays haben nur eine einzige wichtige Eigenschaft, die (aktuelle) Anzahl der Elemente. Die Eigenschaft length liefert die Anzahl als ganze Zahl >=0.

var clen = c.length;

Länge schreiben - Vorsicht !

Die Eigenschaft length kann auch geändert werden.
Das Beispiel zeigt, wie die Anzahl der Elemente eines Arrays zunächst auf 10 erhöht wird. Bereits vorhandene Elemente behalten dabei ihre Werte. Alle neuen Elemente werden auf den Wert undefinded gesetzt.
Danach wird die Länge auf 5 gekürzt. Die Daten aller gelöschten Elemente sind dann unbestimmt - d.h. vernichtet !
Tipp: Verkürzen sie ein Array nur wenn, wenn vorher die nicht mehr benötigten Elemente durch Sortierung an das Ende gebracht wurden.

Array-Länge vergrößern:
c.length = 10;
c[9] = 999;
Array-Länge verkleinern:
c.length = 5;
Die Array-Länge wird meist in einem der rechts gezeigten Fälle verwendet:
Anfügen eines neuen Elements am Ende
Löschen des letzten Elements
Schleife über alle Elemente
c[c.length] = "neu";
c.length--;
for(i=0;i<c.length;i++) {
alert(c[i]);
}

Grenzen

Für die maximale Anzahl der Elemente scheint es keine festgelegten Grenzen zu geben. Sie richtet sich vermutlich nach dem Betriebssystem und/oder dem verfügbaren Speicherplatz.
Vor der Verwendung sehr große Arrays, sollten sie das Verrhalten sorgfältig testen, insbesondere auf PC mit älteren Systemen, älteren Browser-Versionen und mit wenig Arbeits-Speicher.
Da Javascript-Daten meist vom Webserver an den Browser gesendet werden, begrenzt die Übertragungszeit den Umfang: Im Internet sollten Dateien <50-100k bleiben, im Intranet <1-2MB.
Die Eigenschaft length kann auch auf Texte angewendet werden. Sie sind selbst dafür verantwortlich, length in einem sinnvollen Zusammenhang anzuwenden. Die Anwendung von length auf Zahlen ergibt undefined, auf andere Typen evtl. auch Fehler.

Zugriff auf Array-Elemente:   Lesen & Schreiben

Array-Element schreiben

Javascript verwendet als Index (fortlaufende Nummerierung der Elemente) von Arrays nur positive ganze Zahlen >=0. Der Index wird als Zahl oder als Variable in [] gesetzt.
Das erste Element jedes Arrays hat den Index 0. Das Beispiel zeigt, wie man Werte an die Elemente d[0] und d[15] übergibt.
Wenn ein Index die Anzahl der vorhandenen Elemente übersteigt, dann werden alle dazwischen liegenden Elemente mit dem Wert undefinded erzeugt (im Beispiel die Elemente d[1] bis d[14] ).
var d = new Array();
d[0] = 12;
d[15] = "vier";
Neues Element anhängen:
d[d.length] = 56;

Array-Element lesen

Das Lesen von Daten aus Array-Elementen erfolgt genau analog. Der Index wird nur selten als Zahl eingetragen, sondern meist in einer Variablen berechnet.
var x = d[0] + 3;
var y = d[x];

Array-Variable zuweisen und kopieren

Wenn sie eine Array-Variable an eine andere Variable zuweisen, dann werden nicht die Werte der enthaltenen Elemente übergeben, sondern die Adresse des Arrays.
Das wirkt sich so aus, dass sie das gleiche Array zusätzlich (!) unter einem anderen Namen (hier e) ansprechen können.

Wenn sie die Daten eines Arrays tatsächlich kopieren wollen, dann müssen sie das in einer Schleife tun. Im Beispiel können die Elemente von Array n nach dem Kopieren beliebig geändert werden, ohne dass Array d betroffen ist.
d new Array(1,2,3);
var e = d;
e[2] = 99; // ändert d[2]
Achtung ! - Danach enthält Array d die Werte (1,2,99) !
var n = new Array();
for(var i=0;i<d.length;i++) {
n[i]=d[i];
}
n[2]=88; // ändert nicht d[2]

Array als Zwischenpeicher für Daten und Objekte

Ein Array ist ein idealer Speicher für Daten und Objekte aller Art. Man muss allerdings dafür sorgen, dass gelöschte Elemente entfernt werden, und das Array nicht unkontrolliert anwächst.

Auf der Seite zum Thema Sortieren finden sie Kapitel zur dynamischen Verwaltung von Objekten in Arrays.

Bearbeitung von Array-Elementen in Schleifen

Schleifen

Arrays werden meist innerhalb von Schleifen bearbeitet.
Im Beispiel rechts läuft die Index-Variable i zwischen 0 und dem letzten vorhandenen Element des Arrays d
Innerhalb der Schleife wird jedes Element einzeln bearbeitet - Zur Demonstration wird hier ein Zahlenwert eingetragen.
Das zweite Beispiel demonstriert eine andere Syntax-Variante: In jedem Durchgang der Schleife wird ein Element des Arrays d an die Variable x übergeben - Zur Demonstration wird das Element in einem Alarmfenster ausgegeben. Auch hier wird die Schleife für jedes enthaltene Element genau einmal durchlaufen, der Index bleibt jedoch unbekannt.
Tipp: Programmieren sie Array-Schleifen nicht mit fixen Grenzen, z.B. for(i=0;i<5;i++) sondern nach Möglichkeit dynamisch, d.h. an die aktuelle Größe des Arrays angepasst, so wie in den beiden Beispielen.
Schreiben aller Elemente in einer Schleife (begrenzt mit length)
for(i=0;i<d.length;i++) {
d[i] = i*i;
}
Lesen aller Elemente in einer Schleife (begrenzt mit in-Syntax)
for(var x in d) {
alert("x="+x);
}

Mehrdimensionale Arrays

Arrays können auch in mehreren Dimensionen erstellt werden. Dazu werden die Elemente eines Arrays selbst als Arrays definiert. Beim Zugriff auf die Elemente werden alle benötigten Indices hintereinander angeschrieben.

Im Beispiel rechts wird m2 als 2dimensionales Array angelegt, und zwar wie eine Tabelle mit 4 Zeilen zu je 5 Spalten. In der ersten (äußeren) Schleife läuft der Index 0..i..3. Dabei wird je ein Element von Array m2 neu angelegt, und zwar selbst als leeres Array.
In der nächsten (inneren) Schleife läuft der Index 0..j..5. Zur Demonstration wird in jedes Element des 2dimensionalen Arrays ein Zahlenwert eingetragen.

Nach Durchlauf des gezeigten Beispiels:
Das Array m2 hat die Länge m2.length=4
Jedes einzelne Element von m2 hat die Länge 5,   z.B. m2[3].length=5
Alle 3*5=15 Elemente von m2 enthalten Zahlen,   z.B. ist m2[2][3]=6
var m2=new Array();
var i=0; var j=0;
for(i=0;i<4;i++) {
m2[i]=new Array();
for(j=0;j<5;j++) {
m2[i][j]=i*j;
}
}
So sieht dieses Array aus:
00000
01234
02468
036912
Javascript-Arrays können Daten gemischter Typen enthalten. Damit können Strukturen ähnlich einer kleinen Datenbank aufgebaut werden. Das Beispiel zeigt das Array p mit Personen-Daten. Jeder Datensatz enthält einen Text (Vorname) und eine Zahl. Der erste Index gibt die 'Datensatz-Nummer' an, der zweite Index die Spalte (Feld-Nummer).

Nach Ausführung des Beispiels sind z.B. diese Daten eingetragen:
p[0][0]="Rudi"
p[1][1]=34
p[5][0]="Vita"

Einige besondere Hinweise:
Leere Elemente können verschieden eingetragen werden, z.B. als leerer Text "", als Wert null, als Zahl 0, usw.
Die einzelnen 'Datensätze' können unterschiedlich viele Elemente enthalten. Javascript hat damit kein Problem, aber ihre Programme zeigen evtl. Fehler beim Versuch, auf nicht vorhandene Array-Elemente zuzugreifen.
Für die Anzahl der Array-Dimensionen gibt es keine technischen Grenzen. So könnten sie z.B. als drittes Element jedes Datensatzes p[i][2] ein Array variabler Länge eintragen.
Das gezeigte Beispiel kann dazu verwendet werden, Teile einer Datenbank vom Webserver an eine Webseite zu übergeben (siehe Kapitel Initialisierung auf dieser Seite).
So wird ein mehrdimensionales Array als "Mini-Datenbank" angelegt
Die Methode wird in diesem Web häufig eingesetzt):
var p=new Array();
var i=0;
p[i++]=new Array("Rudi",12);
p[i++]=new Array("Susi",34);
p[i++]=new Array("Theo",567);
p[i++]=new Array("",-23);
p[i++]=new Array("Ulli",null);
p[i++]=new Array("Vita");
Dieser Code kann von vielen Programmen oder Programmiersprachen leicht erzeugt werden, z.B. zur Javascript-Codierung von Kalkulations-(Excel)-Tabellen.

Sortieren

Mehrdimensionale Arrays lassen sich nicht direkt sortieren. Dazu verwendet man verschiedene Tricks.
Eine interessante Anwendung ist die interaktive Live-Sortierung von Tabellen auf Webseiten.

Details und Beispiele zum Sortieren von Arrays und von Webseiten-Tabellen.

Arrays an Unterprogramme übergeben

Arrays können als Argumente an Unterprogramme übergeben werden.
Dabei sind einige spezielle Hinweise zu beachten, d.h.
Arrays verhalten sich anders
als 'normale' (skalare) als Argumente übergebene Variable !
Für IT-Insider: Javascript übergibt nicht die tatsächlichen Werte aller Elemente von Arrays, sondern immer die Adresse (pointer) des gesamten Arrays.
Der große Vorteil: So werden auch sehr große Daten-Mengen blitzschnell weitergegeben. Allerdings muss man die besonderen Eigenschaften von Pointern beachten.

Array-Argumente lesen

Das Beispiel zeigt, wie die Arrays test und next als Argumente an das Unterprogramm artest übergeben werden.
Funktion artest übernimmt die Daten jedes beliebigen übergebenen Arrays und gibt ein Alarmfenster mit der Länge und den Array-Daten aus.
Wenn sie die Array-Daten nur lesen, bleiben die Original-Daten im aufrufenden Programm unverändert.
Diese Beispiel-Funktion kann übrigens gut dazu verwendet werden, um die Beispiele dieser Seite auf eigenen Webseiten zu testen.
var test = new Array(44,55,66);
artest(test);
var next = new Array("abc",321);
artest(next);

function artest(a) {
var t="atest:"
t+="\nlength="+a.length;
for(var i=0;i<a.length;i++) {
t+="\na("+i+")="+a[i];
}
alert(t);
}

Array-Argumente schreiben

Die Funktion arnull setzt alle Elemente eines als Argument übergebenen Arrays auf den Wert null.

Im Beispiel wird ein Array ax erzeugt und mit Funktion artest (siehe oben im gleichen Absatz) analysiert. Danach werden alle Elemente des Arrays durch Funktion arnull auf den Wert null gesetzt und nochmals analysiert.
Die Daten des Arrays wurden auch im aufrufenden Programm geändert !

Wenn ein Array als Argument übergeben wird, dann erhält das Unterprogramm nicht eine Kopie der Daten, sondern Zugriff auf das Original-Array des aufrufenden Programms. Jeder Schreib-Zugriff ändert die Daten des 'Original'-Arrays !
var ax = new Array(999,888);
artest(ax);
arnull(ax);
artest(ax);

function arnull(a) {
for(var i=0;i<a.length;i++) {
a[i] = null;
}
}

Array-Kopie

Wenn sie die Daten eines übergebenen Arrays ändern wollen, ohne dass sich die Änderung auf die Daten des aufrufenden Programms auswirkt, dann müssen sie eine Kopie des Arrays herstellen.
Die Kopie wird durch die erste Schleife von Funktion arnull$ hergestellt. Danach kann die Kopie b geändert werden, ohne dass die Daten des 'Original'-Arrays a beeinflusst werden.
function arnull$(a) {
// var b=a; // Falsch !
var b=new Array();
for(var i=0;i<a.length;i++) {
b[i] = a[i];
}
for(i=0;i<b.length;i++) {
b[i] = null;
}
}

Arrays aus Unterprogrammen zurückgeben

Die Rückgabe von beliebigen Variablen - auch von Arrays - erfolgt mit dem return-Befehl.
Das Beispiel rechts zeigt die Funktion get_hms, welche Stunden, Minuten und Sekunden der aktuellen Uhrzeit als Array zurückgibt.
Das aufrufende Programm erhält ein Array (hier hms) welches in einem Alarmfenster angezeigt wird.
var hms=get_hms();
alert("hms="+hms);

function get_hms() {
var a = new Array(3);
var d = new Date();
a[0] = d.getHours();
a[1] = d.getMinutes();
a[2] = d.getSeconds();
return a;
}
Ein Sonderfall liegt vor, wenn ein Unterprogramm das gleiche Array zurückgeben soll, welches es als Argument erhalten hat. In diesem Fall entfällt einfach der return-Befehl, weil das Unterprogramm direkt auf die Array-Daten zugreift, und sie daher nach Bearbeitung nicht zurückzugeben braucht. Details dazu im Absatz Arrays an Unterprogramme übergeben auf dieser Seite.

Das Beispiel rechts erzeugt ein leeres Array r von 100 Elementen und übergibt es an die Funktion arfill. Diese bearbeitet das Array (zur Demo werden hier Zahlen eingetragen). Da ohnehin die Elemente des Array direkt bearbeitet werden, wird nichts zurückgegeben. Nach Ausführung der Funktion arfill stehen die Daten aller Elemente im aufrufenden Programm zur Verfügung, dann ist z.B. r[50]=50
var r = new Array(100);
arfill(r);
alert("r50="+r[50]);

function arfill(a) {
for(var i=0;i<a.length;i++) {
a[i]=i;
}
}

Arrays und Strings

Diese Funktionen dienen zum Aufbau und zur Zerlegung systematisch aufgebauter Texte, deren Teile durch bestimmte Trennzeichen getrennt sind. Sie werden oft vorteilhaft zusammen mit anderen Elementen von Regulären Ausdrücken angewendet. Beispiele: Datei-Pfade, Internet-Adressen, Datum und Zeit (nach ISO-Standard), usw.

Funktion join

Erzeugt einen Text (string) aus den Elementen eines Arrays.
Das Argument in () wird als Trennzeichen bzw. Trenn-String zwischen den einzelnen Elementen verwendet.
Zahlen-Arrays werden automatisch in Strings umgewandelt. Wenn der Trenn-String leer ist, werden die Elemente direkt aneinander gesetzt.
var j = new Array(77,88,99);
var t = j.join("-#-");
alert("t="+t);
Das Beispiel gibt diesen Text aus:
77-#-88-#-99

Funktion split

Zerlegt einen Text (string) in Teile und gibt sie als Array zurück. Als Argument wird ein Regulärer Ausdruck verwendet. Die Trennzeichen (bzw. Trenn-strings) selbst werden bei der Aufspaltung unterdrückt.
Details dazu im Kapitel Reguläre Ausdrücke.
var t = "/home/test/myweb/index.htm";
var s = t.split("/");
Liefert das Array s mit 5 Elementen
("","home","test","myweb","index.htm")

Sonstige Array-Funktionen

Funktion concat

Hängt die Elemente einer Liste an ein Array an.
Funktion concat kann nur auf ein Array angewendet werden (hier k1), die Liste in () kann jedoch beliebige Elemente enthalten, z.B. Arrays und 'gewöhnliche' (skalare) Variable.
Das Ergebnis-Array k123 enthält die Daten der 3 Arrays k1, k2 und k3, sowie die Zahl 999, insgesamt 9 Elemente.

var k1 = new Array(1,2,3);
var k2 = new Array("a","b","c");
var k3 = new Array(123,456);
var k123 = k1.concat(k2,999,k3);

Funktion slice

Der Name ist leider irreführend. Diese Funktion schneidet nichts heraus.
Funktion slice kopiert ein Teil-Array aus einem Array. Als Argumente werden die Indices des ersten zu kopierenden Elements und des ersten nicht mehr zu kopierenden Elements übergeben. Das Teil-Array wird zurückgegeben, das ursprüngliche Array bleibt unverändert.
Bei Angabe negativer Indices wird vom Ende des Array rückwärts gezählt.
Im Beispiel wird ein Array k6 erzeugt, dessen Elemente den gleichen Wert haben wie ihr jeweiliger Index. Funktion slice kopert daraus die Elemente 10..19.

var k6 = new Array();
for(var i=0;i<100;i++) {
k6[i]=i;
}
var k7 = k6.slice(10,20);

Funktion splice

splice mit 0 oder 1 Argumenten tut nichts, löst aber auch keinen Fehler aus.
splice mit 2 ganzzahligen Argumenten (arg1,arg2) löscht arg2 Array-Elemente, beginnend ab Position arg1
splice mit >2 Argumenten löscht Array-Elemente so wie für 2 Argumente angegeben, und fügt an der Bearbeitungs-Position alle weiteren angegebenen Argumente als neue Elemente ein.
k6.splice(5,3);
löscht aus k6 die Elemente (5,6,7).
k6.splice(2,0,88,99);
löscht aus k6 kein Element und fügt an Position 2 die Zahlen 88, 00 als neue Elemente ein.