再声明二维 为什么里面是i 这不是一维的值吗

来源:3-7 二维数组

慕粉1470743962

2016-08-20 15:32

var myarr=new Array();  //先声明一维
for(var i=0;i<2;i++){   //一维长度为2
  myarr[i]=new Array();  //再声明二维
  for(var j=0;j<3;j++){   //二维长度为3

  myarr[i][j]=i+j;   // 赋值,每个数组元素的值为i+j
  }
}

写回答 关注

4回答

  • 离歌笑_0002
    2016-08-25 00:08:15

    其实这个循环是双层循环,外层循环的是行,内层循环的是列。形式就像算数乘法表;你看i的取值,它是在for循环里面i可取0,1,在接下来看当i=0;那么创建了myarr【0】这个一维数组,j=0,就创建了

    myarr[0][0]=0;

    代码继续执行:

               i    j  = i+j    (方便表示对应得关系 )

    myarr[0][1]=0+1;

    myarr[0][2]=0+2;

    形成表格:  i表示行 J表示列 (2行3列)

    0    1     2

    1    2     3 


    开始我也不理解,我想我懂了,再结合,二维数组怎么来的,从一维数组演变而来;那么问题来了,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

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



    翻瑜

    懂了 是因为还没学到循环

    2016-11-02 16:46:02

    共 1 条回复 >

  • weibo_自然卷就是云妹啊_03776252
    2016-08-20 16:32:39

    先声明是个人理解,如有错误请指正~~~~

    1. 一维数组比喻一个大盒子,大盒子里面有一个红色盒子、一个蓝色盒子、一个黄色盒子。。。以此类推

      var box=[红色盒子,蓝色盒子,黄色盒子]

    2. 二维数组比喻一个大盒子里有一些不同颜色盒子,每个颜色的盒子里又放了其它东西,比如上面红色盒子里放了铅笔、蓝色盒子里放了圆珠笔、黄色盒子里放了钢笔。。。

      var box=[[铅笔],[圆珠笔],[钢笔]]  

    3. 再来理解  “myarr[i]=new Array();  //再声明二维 ”这里的myarr[i]能不能把它看成一个整体,类似MYarr=myarr[i],就是MYarr长度为3,只是MYarr是数组“var myarr=new Array();  //先声明一维”里面的某一个值

  • 水里有条鱼
    2016-08-20 15:59:59

    房间是一维的,箱子是二维的

    那我给箱子放东西是不是要这样说

    第一个房间  myarr[i]=new Array();

    第一个房间的第一个箱子 放 1+1   myarr[i][j]=i+j;  

    第一个房间的第二个箱子 放 1+2

    第一个房间的第三个箱子 放 1+3

    第二个房间

    第二个房间的第一个箱子 放 1+1

    第二个房间的第二个箱子 放 2+2

    第二个房间的第三个箱子 放 3+3


  • 成就更好的自己
    2016-08-20 15:59:27

    在myarr中已经是一维的了,在myarr[i]的基础上再创建一个数组就是二维的啊

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468782 学习 · 22507 问题

查看课程

相似问题