peter: Array kopieren

Hallo,

wie kann ich denn einen Array in eine neue Variable kopieren?

Brauche in der neuen Variablen eine Kopie des Ursprungsarrays und keine Referenz!

Will den kopierten Array weiterverarbeiten ohne den Ursprungsarray zu verändern.

gruß
peter

  1. Hallo,

    wie kann ich denn einen Array in eine neue Variable kopieren?

    habs jetzt mit concat gemacht:

    var A=[1,2,3];
    var B=A.concat();

    Ob das aber die optimale Methode ist ....???

    gruß
    peter

    1. gruss peter

      habs jetzt mit concat gemacht:

      var A=[1,2,3];
      var B=A.concat();

      Ob das aber die optimale Methode ist ....???

      das funktioniert, solange die *array member* primitive werte -
      also ausschliesslich werte des typs "boolean", "number" oder
      "string" - sind. objekte werden immer referenziert.

      enthielte dein ausgangsarray komplexere datenstrukturen,
      tauchten deren kopien nur als referenzen im abgeleiteten
      array auf.

      das gilt uebrigens auch fuer irgendwelche prototypischen
      verrenkungen ueber die array-methode [slice].

      so long - peterS. - pseliger@gmx.net

      --
      »Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
      Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
      ie:( fl:) br:> va:( ls:& fo:) rl:) n3;} n4:} ss:} de:µ js:} mo:? zu:]
  2. Hallo,

    Brauche in der neuen Variablen eine Kopie des Ursprungsarrays und keine Referenz!

    Will den kopierten Array weiterverarbeiten ohne den Ursprungsarray zu verändern.

    Das geht so:  var kopie = original.slice(),

    Wenn aber Objekte im Array sind, dann sind es dieselben Objekte, keine Kopien.
    Willst du denn auch Objekte kopieren? Wenn ja, so ist das zwar möglich, aber etwas umständlicher.

    Gruß, Don P