为了账号安全,请及时绑定邮箱和手机立即绑定

2. 二维数组的定义方法二,[[0 , 1 , 2 ],[1 , 2 , 3, ]]不理解

二维数组的定义方法二:var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]]不太理解。对应到表格,数值怎么填入?Myarr[0][0]=?;   Myarr[0][1]=?;   Myarr[0][2]=?;  Myarr[1][0]=?; Myarr[1][1]=?;  Myarr[1][2]=?; 我觉得是2*3=6这样的排列,那是行为2还是列为2。

反过来说,如果1,2,3,4,5,6,7,8,9,10,11,12,这组数12个值,3*4,又怎么定义呢?

感谢大家的回答,让我觉得我不是一个人在学习,是和大家一起在进步。前面二维数组中值和表格的填入关系我大概搞懂了,就是一维数组,然后每个一维数组又包含子元素。大盒子套若干小盒子。3*4那个谁来直接定义一下,看看跟我想的定义方法是否一样?(类似这种var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]]直接把0,1,2,1,2,3数值传入的定义方法)。

正在回答

11 回答

1-12的3*4数组应该这样定义:var arr = [[1, 2, ,3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]。[1, 2, 3, 4]表示第一行,可以看出有4列,总共有3行。

   http://img1.sycdn.imooc.com//57b57dab000155ea03610073.jpg

0 回复 有任何疑惑可以回复我~
#1

小马奔腾v2 提问者

答案和我想的一样。也感谢其他同学的回答
2016-08-22 回复 有任何疑惑可以回复我~

开始我也不理解,看了采纳的答案,我想我懂了,再结合,二维数组怎么来的,从一维数组演变而来;那么问题来了,var arr = [[1, 2, ,3, 4], [5, 6, 7, 8], [9, 10, 11, 12]];怎么看成一维数组呢?

首先上面可以让我们想到在创建一维数组的案例中有var arr=[1,2,3],相当于放了三个盒子从上摆下(三行);对应二维数组中【1,2,3,4】表示第一行;【5,6,7,8】表示第二行;【9,10,11,12】表示第三行;一维数组的长度对应二维数组的行数;那么再看var  arr= 【1,2,3,4】,放了4个数;在二维中就是在第一个盒子中放了四个数;以此类推:

第一行    1      2        3        4

第二行    5      6        7        8

第三行    9     10      11       12

这样二维数组就出来了,三行四列

1 回复 有任何疑惑可以回复我~

      0    1    2

0    1    2    3

1    4    5    6 

2    7    8    9

3   10  11  12

myarr[0]=1,4,7,10;

myarr[1]=2,5,8,11;

myarr[2]=3,6,9,12;

myarr[0][0]=1;myarr[0][1]=4;myarr[0][2]=7;myarr[0][3]=10;

myarr[1][0]=2;myarr[1][1]=5;myarr[1][2]=8;myarr[1][3]=11;

myarr[2][0]=3;myarr[2][1]=6;myarr[2][2]=9;myarr[2][3]=12;

0 回复 有任何疑惑可以回复我~
#1

Vzeo丶 回复 小马奔腾v2 提问者

耶 你说的没错。
2016-08-18 回复 有任何疑惑可以回复我~

可以将var c=[[0,1,2],[1,2,3]]看成是var a=[0,1,2],var b=[1,2,3],var c=[a,b],二维数组可以理解为一位数组,只是一位数组里存放的是数值,字符串等数据,而二维数组里存放的是一维数组。二维数组其中的某一元素var[i][j],对应的是第i个一维数组里第j个元素

0 回复 有任何疑惑可以回复我~
#1

NadiaSmile

双层for循环的话,外层循环控制行数,内层循环控制列数,3*4直接定义的话是var arr=[[0*0,0*1,0*2,0*3],[1*0,1*1,1*2,1*3],[2*0,2*1,2*2,2*3]];也就是var arr=[[0,0,0,0],[0,1,2,3],[0,2,4,6]];
2016-08-18 回复 有任何疑惑可以回复我~
#2

小马奔腾v2 提问者 回复 NadiaSmile

不用for循环,就是直接传入数值的那种定义方法。3*4的意思是3行,4列的表格值。 0 1 2 3 0 1 2 3 4 1 5 6 7 8 2 9 10 11 12 我的理解Myarr[i][j],i为行,j为列。
2016-08-18 回复 有任何疑惑可以回复我~
#3

小马奔腾v2 提问者 回复 小马奔腾v2 提问者

跑位置了,囧~上边和左边都是索引号。横竖对齐观看。
2016-08-18 回复 有任何疑惑可以回复我~
#4

NadiaSmile 回复 小马奔腾v2 提问者

嗯 理解正确,i是行,j是列
2016-08-20 回复 有任何疑惑可以回复我~
查看1条回复

我是这样理解的,2*3我理解成一个数组包含2个子数组,每个子数组包含3个值,即

[['值一','值二','值三'],['值一','值二','值三']]

对应到表格,其实我觉得随意,看你习惯怎么看,从左往右看,或者从上往下看,只是自己假设了一个坐标,同理,1-12个值,3*4,是不是可以说成是 数组包含了3个子数组,每个子数组包含4个值呢?即

[['值一','值二','值三','值四'],['值一','值二','值三','值四'],['值一','值二','值三','值四']]

对应到索引上:arr[i]       -->['值一','值二','值三','值四']...

                       arr[i][j]    -->'值X'

1 回复 有任何疑惑可以回复我~
#1

AndersonLee

补充下,新手,个人理解,有说的不对大神请教我下,不甚感激
2016-08-18 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//57b566910001576e04900120.jpg

3*4的和这个类似

0 回复 有任何疑惑可以回复我~
#1

小马奔腾v2 提问者

我觉得列标,也就是列的索引号,不应该是从0开始吗?还有你表格中的值是Myarr[i][j]=i*j吧。而我想要的是3*4直接把1-12的数值传入数组中。
2016-08-18 回复 有任何疑惑可以回复我~

var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]];

 Myarr[2][3]

0 回复 有任何疑惑可以回复我~

去把C语言看一遍就知道了

1 回复 有任何疑惑可以回复我~

二维数组,你抽象成表格理解很对啊~~ 你定义3*4的二位数组,你可以这么看,便于理解:

var arr = [

[a,b,c],

[a,b,c],

[a,b,c],

[a,b,c],

                  ]

0 回复 有任何疑惑可以回复我~

    0      1      2

1  0      0       0

2  0      2       4

3  0      3       6

  


0 回复 有任何疑惑可以回复我~
首页上一页12下一页尾页

举报

0/150
提交
取消

2. 二维数组的定义方法二,[[0 , 1 , 2 ],[1 , 2 , 3, ]]不理解

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号