Arrayer i JS funkar lite som pekare i C. Efter kommandot b = a; så pekar i själva verket både b och a mot samma objekt. Den nya arrayen du definierade åt b "försvinner". (Det allokerade minnet frias senare av garbage collectorn som märker att den arrayen inte refereras någonstans längre)
För att göra det du vill måste du klona arrayen på ett eller annat sätt.
Kod nedan, men först på svenska:
Skapa array a={0,1,2}.
Skapa array b=a.
Gör reverse på b.
Skriv ut a och b.
Det som borde hända (imho) är att a={0,1,2} och b={2,1,0},
men det som verkar hända är att a också blir omvänd. :q
Kan någon förklara vad som händer?
<html>
<body>
<script type="text/javascript">
var a = new Array() ;
a[0] = 0 ;
a[1] = 1 ;
a[2] = 2 ;
var b = new Array() ;
b = a ;
b.reverse() ;
document.write(a + "<br />" + b) ;
</script>
</body>
</html>
Resultat:
2,1,0
2,1,0
Men jag tycker, som sagt, att det borde varit:
0,1,2
2,1,0
eftersom jag aldrig bett om att vända på a.

