初学程序员
2016-03-10 09:45
二维数组的写法有些看不懂,想让比较有经验的老师帮我解答一下关于二维数组的写法。及逻辑
赞同二楼的理解,我觉得这样理解起来最合理
JavaScript实际没有二维数组,所有的数组都是一位数组,二维数组是其中的特例:即数组的某个元素也是数组
例如:声明一个数组 myarray = new Array();
元素赋值: 前面赋值往往是这样的: myarray[0] = 1 ;
但实际上,你可以对元素赋值任何数或对象 ,包括 数字,字符串,数组,对象等
二维数组就是指 数组中的元素也是数组 即 myarray[0] = new array(); 而且可以无限延伸下去
理解二维数组最为重要 。 二位数组其实就是一维数组中元素的一维数组 ,可以把它看作矩阵 ,可能有些不好理解。看下面的例子
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中数组的定义是相同类型元素的集合 。 所以大家用的时候可以注意一下 。
跟一维的声明方式一样 别被那一大串给绕晕了 表示方式不一样 就这么大区别
JavaScript进阶篇
468781 学习 · 22507 问题
相似问题