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

怎么理解myarr[i],[i]也算一个数组吗?

怎么理解myarr[i],[i]也算一个数组吗?

Kax孙新玮 2016-07-04 22:26:08
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    }  }
查看完整描述

12 回答

?
weibo_哆啦A梦有大口袋_0

TA贡献107条经验 获得超146个赞

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>测试</title>
</head>
<body>
</body>
</html>
<script type="text/javascript">
//声明一个一维数组,数组名为myarr
var myarr=new Array();
for (var i = 0; i< 2; i++) {
    //首先myarr是一个一维数组,myarr[i]是myarr数组的值
    //然后把一维数组myarr的值mayrr[i]当做数组名再次声明一个一维数组,
    //所以变成了二维数组
    myarr[i]=new Array();
    for(var j=0;j<3;i++){
        //同理可得,以下声明了一个三维数组
        myarr[i][j]=new Array();
    }
}
</script>

出于对回答者的认同和尊重,解决了你的问题,请采纳,谢谢

查看完整回答
5 反对 回复 2016-07-05
?
我要做一个大侠

TA贡献2条经验 获得超4个赞

要连起来看,myarr是一个已经声明过的数组,而[ ]的作用是存放数组的下标。在循环里i分别代表0,1,2,也就是说myarr[i]分别指代数组的第0,1,2个元素。所以[ i ]本身不是一个数组,要和前面的数组名连起来,同时i也要有具体的值时来表示数组的第i个元素.   当直接使用[]时,例如[ 1,2,3,'s','hello'],时它也能代表一个数组,但[]里必须number/string/json/array等数据,而不是变量。

查看完整回答
2 反对 回复 2016-07-04
?
woshiajuana

TA贡献211条经验 获得超152个赞

[i]它不是一个数组,

myarr[i]才是一个数组

myarr[i]=new Array();就是数组声明

myarr[i]可以理解就是一个数组变量


如满意,望采纳

查看完整回答
1 反对 回复 2016-07-04
点击展开后面3
?
万卷古今消永日

TA贡献6条经验 获得超2个赞


看到没有采纳就进来了,跟着我思路走起:

    首先var myarr=new Array()等价于var myarr = [ ] ,都是一维数组

    然后,二维数组是酱紫的  var myarr_2wei = [ [1] , [2] , [3] ] ,如果你要取[2] ,怎么办,下标找到它啊,怎么找?好办,myarr_2wei[1];看懂没?对这种用中括号的方式很简单,就是这样就可以了。

    再来,var arr = new Array("子数组1",“子数组2”,“子数组3”);   找子数组怎么找:先用i遍历,然后arr[i],这是用i这个下标找到了子数组;既然arr[i]是每一个子数组,它本身就是一个数组,他本身当然也可以存东西,如:var myarr_2wei = [ [1] , [2] , [3] ]重的  [1]其实就是myarr_2wei的一个子数组,存的东西是1一样

    如果var myarr_2wei = [ [1,4] , [2] , [3] ]完全等价var arr = new Array("子数组1",“子数组2”,“子数组3”);

        那么:myarr_2wei[0]=arr[0];子数组1的第一个下标位置存的就是1,也就是myarr_2wei[0][0]=arr[0][0]

    

查看完整回答
反对 回复 2016-07-25
?
阿皎就是茕兔丶

TA贡献5条经验 获得超0个赞

myarr[i]就是myarr[0],myarr[1]....

这里i就是用来表示索引号的,用i=0(索引号初始为0),i<2(索引号0,1),i++的判断条件表示出来

查看完整回答
反对 回复 2016-07-06
?
天涯帅哥

TA贡献38条经验 获得超8个赞

可以这么说,用for in i便利数组时,i就相当于一个数组,但是对于中括号里面得i.他就是一个数字索引,整体就是一个数组

查看完整回答
反对 回复 2016-07-06
?
nickylau82

TA贡献128条经验 获得超67个赞

我觉得如果不是先学c#的人,对这个应该不会觉得困惑啊,JavaScript并不像C#那样需要先声明长度的。

在这里的myarr[i]其实就是array的一个元素而已,myarr[i] = new Array() 的含义就是把myarr[i]声明为一个数组,相当于告诉编译器这个元素是个数组。 在本质上和你myarr[i]和最上面的var myarr = new Array()中的 myarr没有本质区别。都是一个变量而已。

查看完整回答
反对 回复 2016-07-05
?
qyy2499760117_叶子

TA贡献188条经验 获得超91个赞

不用想那么多,i说白了就是循环的次数,i<2,i=0, 从零开始0,1,所以执行了两次。

查看完整回答
反对 回复 2016-07-05
?
做一件有价值的事等待时间的回报

TA贡献2条经验 获得超1个赞

my_arr = [1,"i",[3,8,"oo"],myVariable];

my_arr[0]//1  my_arr第一个元素是数值1

my_arr[1]//"i" my_arr第二个元素是字符串“i”

my_arr[2]//[3,,8,"oo"] my_arr 第三个元素是数组[3,,8,"oo"],我想获取这个数值的第二个元素则my_arr[2][1];

查看完整回答
反对 回复 2016-07-05
?
人笨嫌刀钝

TA贡献100条经验 获得超24个赞

myarr[i] = new array()

执行这句时把myarr中的一个元素声明成了数组,在此之后myarr[i]就指向了一个数组

查看完整回答
反对 回复 2016-07-04
?
super_mb

TA贡献101条经验 获得超107个赞

是的,myarr[i]中保存的是一个一维数组,长度为3

查看完整回答
反对 回复 2016-07-04
  • 12 回答
  • 1 关注
  • 3113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信