Dag allemaal,
Ik ontdek soms iets vreemd met JavaScript waar ik dan vervolgens lang mijn hoofd over breek en er niet uitkom. Waarschijnlijk is het iets stoms wat ik gewoon niet zie. Nu was ik een functie aan het schrijven om 3D arrays te verwerken. Om te testen wou ik een 3D array even met getallen opvullen zodat ik het resultaat kon zien. Voor zover ik weet kun je geen >1D array direct met getallen vullen, want dan krijg ik foutmeldingen. Dus doe ik het door eerst een array te vullen, die toe te kennen aan een array, en dan weer, zodat ik een 3D array krijg:
De output van dit programma is:
18,1481,1531,18,1481,1531,18,1481,1531
18,1481,1531,18,1481,1531,18,1481,1531
Dus alleen de getallen uit de laatste serie komen terug, terwijl dat wanneer je tussendoor de dummyar's bekijkt, dan staan hierin wel de juiste waarden.
Kan iemand mij vertellen wat ik hier over het hoofd zie?
Ik ontdek soms iets vreemd met JavaScript waar ik dan vervolgens lang mijn hoofd over breek en er niet uitkom. Waarschijnlijk is het iets stoms wat ik gewoon niet zie. Nu was ik een functie aan het schrijven om 3D arrays te verwerken. Om te testen wou ik een 3D array even met getallen opvullen zodat ik het resultaat kon zien. Voor zover ik weet kun je geen >1D array direct met getallen vullen, want dan krijg ik foutmeldingen. Dus doe ik het door eerst een array te vullen, die toe te kennen aan een array, en dan weer, zodat ik een 3D array krijg:
Code:
<html>
<head>
<script type="text/javascript">
var The3Darr = new Array;
function vulars() {
var dummyar = new Array;
var dummyar2 = new Array;
dummyar[0] = 64;
dummyar[1] = 1037;
dummyar2[0] = dummyar;
dummyar[0] = 36;
dummyar[1] = 1037;
dummyar[2] = 1200;
dummyar2[1] = dummyar;
dummyar[0] = 1;
dummyar[1] = 1037;
dummyar[2] = 1201;
dummyar2[2] = dummyar;
The3Darr[0] = dummyar2;
dummyar[0] = 217;
dummyar[1] = 1481;
dummyar2[0] = dummyar;
dummyar[0] = 217;
dummyar[1] = 1481;
dummyar[2] = 1250;
dummyar2[1] = dummyar;
dummyar[0] = 18;
dummyar[1] = 1481;
dummyar[2] = 1531;
dummyar2[2] = dummyar;
The3Darr[1] = dummyar2;
}
</script>
</head>
<body>
<script type="text/javascript">
vulars();
document.write(The3Darr[0] + "<br>");
document.write(The3Darr[1]);
</script>
</body>
</html>
De output van dit programma is:
18,1481,1531,18,1481,1531,18,1481,1531
18,1481,1531,18,1481,1531,18,1481,1531
Dus alleen de getallen uit de laatste serie komen terug, terwijl dat wanneer je tussendoor de dummyar's bekijkt, dan staan hierin wel de juiste waarden.
Kan iemand mij vertellen wat ik hier over het hoofd zie?