首页 新闻 搜索 专区 学院

javascript中的数组相关问题

0
悬赏园豆:200 [已解决问题] 解决于 2017-10-22 16:50
 1 <script  type="text/javascript">
 2         var six = new Array();
 3         six[0] = "d","ad";
 4         six[1] = "ds";
 5         var arr = ["s","s","s","s","f"]
 6 
 7         var six2 = new Array();
 8         six2[0] = ["s", "dd"];
 9         six2[1] = ["dd", "sdd"];
10         for (index in six) {
11             alert(six[index]);
12 
13         }
14     </script>
15 
16  <!--  我就是想问
17 (1)数组中的中括号[]和小括号没什么关系吗?
18 就是数组可以随便用什么括号,还可以不打括号? 就像我写的six数组?
19 
20 (2)在我写的上面三个数组中  他们三个有什么区别不?
21 
22 (3)six中的six[0]后面有两个值  我把他aleat出来只能看见第一个
23 而six2中  后面都可以看出来 ,这是怎么回事啊?
24 -->

问的问题都在注释中  现在我很迷

谢谢  谢谢 谢谢

别鄙视我  耐心的教我啊!!!

大佬/扯一扯

Cgrain的主页 Cgrain | 小虾三级 | 园豆:1121
提问于:2017-10-22 11:04
< >
分享
最佳答案
0

问题1

生成数组有两种方式

第一种:

var arr = ["s","s","s","s","f"];

变通一下还可以这样

var arr=[];//生成一个空数组

arr.push("s");//向空数组中添加一个元素

第二种

var arr=new Array();

arr[0]="s";

arr[1]="s";

arr[2]="s";

arr[3]="s";

arr[4]="f";

 

问题2

var six2 = new Array();

six2[0] = ["s", "dd"];

 six2[1] = ["dd", "sdd"];

相当于

var six2=[["s","dd"],["dd","sdd"]]

数组里面的元素是数组

这样的叫二维数组

问题3

这个就不用多解释了

six[0] = "d","ad";//没有这么赋值的

收获园豆:190
海之殇 | 菜鸟二级 |园豆:480 | 2017-10-22 11:45

 (1)上面写的三个代码  就是括号不一样  其他东西都一样吗?

列:数组没括号  ,数组小括号  ==中括号?(我看你是这样子的)

(2 )就是我上面写的数组 都合法不  

 

Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 11:55

@学C#要暴走: 

var arr=new Array();这个小括号是构造函数的括号,不能和中括号画等号,具体你可以

找一下资料看看JavaScript对象创建方法

三个代码中

第一第二个是一维数组,分别是用方法1和方法2生成的,没有区别

第三个是一个二维数组,跟一、二不一样

不合法的地方我上面已经写了

海之殇 | 园豆:480 (菜鸟二级) | 2017-10-22 12:21

@海之殇: 

就这样子写数组没区别吧?

var  six=new  arrey("4","3","3","3");

等效于

var  six=new  array();

six[0]=('d');

six[1]=('sd');

等效于

var  six=new  array();

six[0]="d";six[1]="sd";

等效于

var  six=new  array();

six[0]=["d"];

six[1]=["sd"];

这几种写法没区别吧?(都是一维数组!)

 

Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 15:22

@学C#要暴走:

最后一个不是一维数组

是二维数组

海之殇 | 园豆:480 (菜鸟二级) | 2017-10-22 15:38

@学C#要暴走: 

["d"]这个就是一个数组,只不过数组只有一个元素

six[0]=["d"];这个的意思就是数组的第一个元素是一个数组["d"]

海之殇 | 园豆:480 (菜鸟二级) | 2017-10-22 16:01

@海之殇: 现在有点懂了  就是说["e"]这样子 就是一个数组了  如果你在里面加值["dd","dd"]这样子就是二维数组了

 

然后 这样子:("d","d")  是一个数组  不管里面有多少个元素都是一维数组

但是吧()换位[]  他就是二维数组了

Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 16:10

@学C#要暴走:

不是(捂脸)

["a"] 一维数组

["a","b","c"]一维数组

[["a"],["b"]] 二维数组

[["a","b"],["c","d"]]二维数组

然后

var  six=new  array();

six[0]=["d"];

six[1]=["sd"];

等价于[["d"],["sd"]]

是二维数组

 

var  six=new  array();

six[0]="d";

six[1]="sd";

等价与["d","sd"]

是一维数组

 

小括号("d")等价与"d",小括号与数组并没有关联,我是没看到过有这么用小括号的

 

看到你一直说小括号,强调一下

数组定义并不是用小括号来定义

只有两种方式定义数组

var  six=new  array();

var arr=[];

海之殇 | 园豆:480 (菜鸟二级) | 2017-10-22 16:16

@海之殇: 你最后从然后这里  我可以这样理解吗?

six[0]=["d"];

six[1]=["d"];

等价于[[q],["q"] ]<!--最外面这个括号是系统加的-->

而six[0]="d"等价于('d')(等价吗?)

six[1]="s"等价于(‘s’ )

等价于["d","s"]等价于[("d"),("s")]

然后这样子看就是一维数组?

 

Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 16:25

@学C#要暴走:

差不多这样子

还有不要再纠结小括号了,没人会在数组中用小括号的。

你写正规点也能好理解一下,你这样一直纠结小括号容易理解错的

再强调一次

数组里不用小括号

var  six=new  array();

这里的小括号是构造方法的,方法调用都要用小括号

 

海之殇 | 园豆:480 (菜鸟二级) | 2017-10-22 16:33

@海之殇: 啊  我现在经常看见小同学加小括号哎  然后他们又不告诉我原因 

那我是不是以后都不加小括号了?

Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 16:36

@学C#要暴走: 

不用加,不用加,不用加,重要的是说三遍

海之殇 | 园豆:480 (菜鸟二级) | 2017-10-22 16:40

@海之殇: 

//创建数组分装类
var leis = new Array(); //图片_______价格__销量___描述
leis[0] = new lei("images/food1.jpg", 123, 5455, 'miaoshi');
leis[1] = new lei("images/food2.jpg", 323,4654, 'miaoshi');
leis[2] = new lei("images/food3.jpg", 434, 233, 'miaoshi');
leis[3] = new lei("images/food4.jpg", 544, 263233, 'miaoshi');
leis[4] = new lei("images/food5.jpg", 655, 26464, 'miaoshi');
leis[5] = new lei("images/food6.jpg", 432, 2138, 'miaoshi');
leis[6] = new lei("images/food7.jpg", 124, 9877, 'miaoshi');
leis[7] = new lei("images/food8.jpg", 234, 3260, 'miaoshi');

 

哥  这是干嘛的

Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 16:43

@学C#要暴走:

new lei("images/food8.jpg", 234, 3260, 'miaoshi');//创建一个lei对象

创建一个数组

给数组添加八个lei对象元素

 

到此为止吧,你不会的太多了,没办法从头到尾跟你讲

海之殇 | 园豆:480 (菜鸟二级) | 2017-10-22 16:47

@海之殇: 哥  抱歉了

Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 16:49

@学C#要暴走: 不用道歉,你需要的是系统的学习,不是我们回答几个问题就能让你懂的,希望你不要失去学习兴趣

海之殇 | 园豆:480 (菜鸟二级) | 2017-10-22 16:53

@海之殇: 基础不牢的原因的   学it 我问题好多(我都服我自己!)

Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 17:00
其他回答(1)
0

应该先学习下JavaScript语法。

收获园豆:10
幻天芒 | 园豆:36662 (高人七级) | 2017-10-22 15:55

现在就是在学  所以才有这么多问题。。 烦死了

支持(0) 反对(0) Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 16:07

@学C#要暴走: 

var six = new Array(); // 定义一个空数组
six[0] = "d","ad"; // 给数组的第一个元素赋值为 'd',后面的'ad'没什么用
six[1] = "ds"; // 给数组的第二个元素(下标从0开始)赋值为 'ds'
var arr = ["s","s","s","s","f"] // 指定定义一个数组并赋值。
var six2 = new Array(); // 定义一个空数组
six2[0] = ["s", "dd"]; // 给数组的第一个元素赋值为一个新数组,整个也就形成了二维数组
six2[1] = ["dd", "sdd"]; // 给数组的第二个元素赋值
for (index in six) { // for...in 表示遍历对象(PS:数组不应该这样遍历)
  alert(six[index]); // 弹出对象的指定属性值
}
支持(0) 反对(0) 幻天芒 | 园豆:36662 (高人七级) | 2017-10-22 16:18

@幻天芒:   对啊  我一直就是这样子写的  我就是搞不懂  要不要加小括号  小括号 给来干嘛的

支持(0) 反对(0) Cgrain | 园豆:1121 (小虾三级) | 2017-10-22 16:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册