Array kopieren

Komischerweise ist es bei JavaScript anscheinend so, dass man ein Array nicht auf herkömmliche Art und Weise duplizieren kann. Also bei folgendem Beispiel wird lediglich eine Referenz erzeugt:

var arr1 = new Array();

var arr2 = arr1;

Änderungen an arr2 würden, der Referenz sei Dank, also immer auch arr1 betreffen. Ich hab lange forschen müssen, aber die einizge (einfache) Lösung erscheint mir ein Trick mit concat() zu sein.

var arr1 = new Array();

var arr2 = arr1.concat()

An arr1 wird also ein leeres Array angehängt was bewirkt, dass ein komplett neues Array mit dem Inhalt von arr1 erzeugt wird. Raffiniert und wirkungsvoll. Nur halt ein bisschen umständlich… Andere Lösungsvorschläge?

Dieser Beitrag wurde unter JavaScript veröffentlicht. Setze ein Lesezeichen auf den Permalink.

5 Antworten auf Array kopieren

  1. Sven sagt:

    Für eindimesionale Arrays: var arr2 = arr1.slice(0);
    Für mehrdimensionale Arrays: var arr2 = eval(arr1.toSource());

  2. Sven sagt:

    Und: var arr1 = new Array(); kann man auch als var arr1 = []; schreiben .. spart Tipperei ;)

  3. Ronald sagt:

    Ebenfalls interessant, danke! Wobei eval() natürlich immer ein Performancefresser ist.

  4. Ronald sagt:

    Und: var arr1 = new Array(); kann man auch als var arr1 = []; schreiben .. spart Tipper

    Jau, aber “new Array()” ist in dem Fall übersichtlicher bzw. eindeutiger für nicht so geübte Leser. :-)

  5. Sergej sagt:

    Hehehe, zwei Doofe (fast) ein Gedanke :)
    JavaScript-Arrays kopieren

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>