问答详情
源自:3-7 二维数组

求解答二维数组

二维数组的写法有些看不懂,想让比较有经验的老师帮我解答一下关于二维数组的写法。及逻辑

提问者:初学程序员 2016-03-10 09:45

个回答

  • antplans
    2016-03-24 20:08:11

    赞同二楼的理解,我觉得这样理解起来最合理

  • 掌仙人
    2016-03-10 17:13:37

    JavaScript实际没有二维数组,所有的数组都是一位数组,二维数组是其中的特例:即数组的某个元素也是数组

    例如:声明一个数组  myarray = new Array();

            元素赋值: 前面赋值往往是这样的: myarray[0] = 1 ;

                                但实际上,你可以对元素赋值任何数或对象 ,包括 数字,字符串,数组,对象等

    二维数组就是指   数组中的元素也是数组   即 myarray[0] = new array();  而且可以无限延伸下去

  • 发条橙子1
    2016-03-10 10:08:16

    理解二维数组最为重要 。  二位数组其实就是一维数组中元素的一维数组 ,可以把它看作矩阵 ,可能有些不好理解。看下面的例子 

     var  array = [a1 , a2 , a3] ;  // 这个应该可以看的懂 , 就是创建了一个长度为3的数组 。 数组的值为a1 , a2 , a3。

    那么当 a1 是  a1 = [1 , 2  , 3];   // 也就是说 a1也是一个一维数组的时候 。 同理a2 , a3也是 。 那么array是不是就是一个二维数组了 。

    1.那么按照课程所教的 , 二位数组的声明方法 var array = [[1 , 2 ,3] , [2 , 3 , 4] , [3, 4, 5]];   //[1,2,3]就是a1 , [2,3,4]就是a2 ,[3,4,5]就是a3;

    2.这是已知数组里的值的声明方法 , 如果你不知道值的话 , 想声明一个 2 * 3的二维数组 。 按照课程所教需要用到for循环。 看例子

    var  array = new ARRAY();

    for(var i = 0 ; i < 2 ; ++i){

            array[i] = new ARRAY();   // 注意现在的 array[i] 已经相当于之前的 a1了 。 只是a1里面还没标明有多少个元素

            for(var  j =0 ; j < 3 ; ++j){

                    array[i][j] = xx; //可以将值赋进去 。 如果是a1  , 那就分别是 1 , 2 ,3      

            }

    }


    // 以上全部是我的理解 , 不要按照标准来看 。 只是想便于你理解 。 如有问题希望补充 , 大家共同进步 

    还有要注意 js 中的数组和 java中的数组差别还是蛮大的  。 例如 js数组是变长 。 当声明

    var array = new ARRAY(3);    array[6] = xx;   这个时候不会报错 , 数组的长度自动变成 7 ; 而在java中则会报出数组越界的错误 。

    还有 js 中的数组里的元素可以是不同类型 。 例如 var array = ["abc" , 123 , true] ; 这都没问题 , 但是java中数组的定义是相同类型元素的集合 。 所以大家用的时候可以注意一下 。  

  • douzig
    2016-03-10 09:55:39

    跟一维的声明方式一样 别被那一大串给绕晕了 表示方式不一样 就这么大区别