LanX!: Array in ein anderes Array kopieren ohne ein neues zu erzeugen

Beitrag lesen

Hi

ich habe keine Hoffnung dass es geht, aber vielleicht belehrt ihr mich ja eines besseren.

JS kennt keine List-Assignments von Arrays wie in Perl, also

  
$a=[1,2,3];  
$b=[4,5,6];  
$c=$a;  
@$a=@$b;  
if ($c == $a) { print "Klappt, keine neue Referenz, \$a zeigt auf das alte Array"}  

Ich habe mir dazu slice angeschaut, aber dort müsste ich die neuen Elemente einzeln auflisten, ich kann b nicht zu einer Liste abflachen (wie mit @$b in Perl)

a.splice(0,a.length,4,5,6)

Auch concat oder slice helfen mir nicht weiter, weil hierbei neues Arrays erzeugt werden, d.h. die alten Referenzen nicht mehr stimmen:

a=[1,2,3];  
b=[4,5,6];  
c=a=[];  
a=b.slice(0);  
if (c != a) { alert( "klappt nicht" ) }  

Hat jemand vielleicht ne gute Idee wie man performant umkopieren kann, ohne eine explizite Schleife dafür schreiben zu müssen?

Grüße
  Rolf