You are here: irt.org | FAQ | JavaScript | Object | Q365 [ previous next ]
JavaScript does not support real multi-dimensional arrays. You can however simulate multi-dimensional arrays using two different techniques:
<SCRIPT LANGUAGE="JavaScript"><!-- // Arrays within arrays: var x = new Array(new Array(1,2,3),new Array('A','B','C'),new Array('x','y','z')); alert(x[1][2]); // returns 'C' // Associative arrays: var myArray = new Array(); myArray['00'] = 1; myArray['01'] = 2; myArray['02'] = 3; myArray['10'] = 'A'; myArray['11'] = 'B'; myArray['12'] = 'C'; myArray['20'] = 'x'; myArray['21'] = 'y'; myArray['22'] = 'z'; alert(myArray['1' + '2']); // returns 'C'; //--></SCRIPT>
The following was submitted by Antti Eronen
You can use the code submitted below to easily create 3D-arrays. The code is hopefully self-explanatory enough. You could tweak this code to create a new function for creating 4D-arrays etc, or...
Someone with more time on her hands could create a recursive version of this for creating arrays of any number of dimensions. I didn't have the time or energy right now.
<script language="JavaScript"><!-- // Create a new array variant for your use var y = new Array() // Below you create an array of chosen 'dimensions' y = create3DArray(6,6,6) // creates a 6 x 6 x 6 array // Show the contents of a few arbitrary cells alert(y[0][1][2]); alert(y[3][0][3]); alert(y[2][1][0]); function create3DArray(d1, d2, d3) { var lineTxt = "5"; var x = new Array(d1); for (var i=0; i < d1; i++) { x[i] = new Array(d2); } for (var i=0; i < d1; i++) { for (var j=0; j < d2; j++) { x[i][j] = new Array(d3); } } // By uncommenting the next lines you can set the array cells // to a preliminary value (to zero below) // Otherwise the cells are left to the undefined value // for (var i=0; i < d1; i++) { // for (var j=0; j < d2; j++) { // for (var k=0; k < d3; k++) { // x[i][j][k] = 0; // } // } // } return x; } //--><script>