Results 1 to 2 of 2

Thread: Multi-Dimensional Array

  1. #1
    Join Date
    Mar 2010
    Location
    Canada
    Posts
    32
    Thanks
    1
    Thanked 0 Times in 0 Posts

    Default Multi-Dimensional Array

    I have an array, called, "myArray". Inside this myArray are 4 more arrays, "m0, m1, m2, m3".
    How do I access all the elements in all the array?

    Here's my code, :
    Code:
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    
    <body>
    <script>
    var m0 = [0, 1, 2, 3, 4];
    var m1 = [5, 6, 7, 8, 9];
    var m2 = [10, 11, 12, 13, 14];
    var m3 = [15, 16, 17, 18, 19];
    
    var myArray = [m0, m1, m2, m3];
    
    
    for (var i = 0; i < myArray.length; i++) {
        for (var j = 0; j < ("m"+i).length; j++) {
            document.writeln(myArray[i][j]);
        }
    }
    </script>
    </body>
    </html>

    This code only give me the first 2 elements in each array.
    But, I would like to get all the elements in all the arrays.

    tks

  2. #2
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    In this line:

    Code:
        for (var j = 0; j < ("m"+i).length; j++) {
    the red part is a string which will resolve to - m0, m1, m2 and then m3. As strings they are each only 2 characters in length, so that's what you're getting. Here they're converted to what they are, properties of the window object, where their native length as arrays can be read:

    Code:
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    
    <body>
    <script>
    var m0 = [0, 1, 2, 3, 4];
    var m1 = [5, 6, 7, 8, 9];
    var m2 = [10, 11, 12, 13, 14];
    var m3 = [15, 16, 17, 18, 19];
    
    var myArray = [m0, m1, m2, m3];
    
    
    for (var i = 0; i < myArray.length; i++) {
        for (var j = 0; j < window["m"+i].length; j++) {
            document.writeln(myArray[i][j]);
        }
    }
    </script>
    </body>
    </html>
    The window (assuming this is a web page) is the default object in javascript. But you needn't address them that way, this will also work:

    Code:
    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    
    <body>
    <script>
    var m0 = [0, 1, 2, 3, 4];
    var m1 = [5, 6, 7, 8, 9];
    var m2 = [10, 11, 12, 13, 14];
    var m3 = [15, 16, 17, 18, 19];
    
    var myArray = [m0, m1, m2, m3];
    
    
    for (var i = 0; i < myArray.length; i++) {
        for (var j = 0; j < myArray[i].length; j++) {
            document.writeln(myArray[i][j]);
        }
    }
    </script>
    </body>
    </html>
    The for loop is less efficient than the while loop, so I would (also changing other things around a little) do it more like:

    Code:
    var myArray = [
    	[0, 1, 2, 3, 4],
    	[5, 6, 7, 8, 9],
    	[10, 11, 12, 13, 14],
    	[15, 16, 17, 18, 19]
    ], i = -1, j;
    
    while (++i < myArray.length){
    	j = -1;
    	while(++j < myArray[i].length){
    		document.writeln(myArray[i][j]);
    	}
    }
    There are surely numerous other ways to approach it.
    Last edited by jscheuer1; 01-18-2013 at 03:54 AM. Reason: add alternate solutions
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

Similar Threads

  1. Resolved Sort Multi-dimensional Array Multiple Times
    By Medyman in forum PHP
    Replies: 0
    Last Post: 03-24-2009, 01:18 AM
  2. Two Dimensional Array
    By lilyoungfella in forum Java
    Replies: 2
    Last Post: 01-28-2009, 09:35 PM
  3. Two Dimensional Array Help
    By SChaput in forum Java
    Replies: 1
    Last Post: 10-10-2008, 08:48 PM
  4. Multi-Dimensional Arrays
    By susie123 in forum JavaScript
    Replies: 9
    Last Post: 09-11-2007, 04:39 PM
  5. Replies: 11
    Last Post: 11-12-2006, 03:37 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •