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?

War dieser Artikel hilfreich für Sie?
[Gesamt: 0 Durchschnitt: 0]

5 thoughts on “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

Schreibe einen Kommentar

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