在之前的学习的数据类型,只能存储一个值(比如:Number、String),我们想在一个变量中存储多个值,应该如何存储呢?
所谓数组,就是将多个元素(通常是同一类型)按照一定顺序排放到一个集合中,那么这个集合我们就称之为数组
数组就类似一个储物柜,储物柜有按顺序排好的小储物箱,每个小储物箱都有一个序号,可以放置很多东西,同时我们也可以按照序号取东西出来
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
<script>
var arr = ['a','b','c'];
var arr2 = [1,2,3];
</script>
</html>
我们看这个script标签里面的代码,定义变量,并且是定义多个值,用的是 [] 扩起来,中间用逗号分隔,arr定义存储的是一组字符串,arr2定义存储的是一组数字,并且是可以放很多数据的
这个arr就相当于一个数组,相当于超市的储物柜,每个储物柜都有顺序的,那我们看变量arr和arr2里面的数据,这样看也是有序号的吗,这样看也看不到有序号的啊,注意:它实际上是有序号的,而且是默认往后排的
var arr = ['a','b','c'];
var arr2 = [1,2,3];
我们看arr里面的 ‘a’,它的序号就是0,那么自然 ‘b’ 的序号就是1,‘c’ 的序号就是2
在看arr2里面的数值,虽然是123正常排的,但是,它的序号也是跟上面一样,1的序号就是0; 2的序号就是1; 3的序号就是2
那我们想要取出一个值,那我们就要知道它的序号,才能去除来,那怎么取我们看一下:
var arr = ['a','b','c'];
var arr2 = [1,2,3];
console.log(arr[1])
我们看打印里面的arr后面紧跟的是 [] , 注意不是上面的变量的 [];里面写的是序号
那么我们如何创建数组呢,我们接着看代码:
- 字面量方式创建数组
var a1 = []; //空数组
像这样的,也可以的,就是创建一个空数组
像下面的这样,[] 里面放的数据是什么无所,是什么数据类型也无所谓,只要用英文的逗号分开就好
var a1 =[1,'d'];
console.log(a1);
我们直接打印整个数组看:
可以看到数组都打印出来了,并且也可以看到它们的顺序是从0开始的
- 构造函数方式创建数组
var a1 = new Array();
这个先解释一下:Array,A要大写,这个就可能没上面的容易了,还要用英文小括号,就有些麻烦
这个是JS中比较重要的一点,后面我们会学到,现在讲的话会有困难,就先记住就行
var a1 = new Array(1,3,'h','k');
console.log(al);
可以看到,打印出数组并存放了数据
那么有时候我们需要获取数组的长度,这是我们可以用 .length 来查看数组长度
var a1 = new Array(2,3,'d','a');
console.log(al);
// 获取数组的长度
var l = al.length
console.log(l);
可以看到,是4个的长度
那现在有一个问题,数组里面能不能有数组呢,我们接着看
... ...
var a1 = [1,4,'k','l'];
var a2 = [6,7,a1,'t'];
console.log(a2);
</script>
</html>
我们先看一下这段代码,定义完a1后,又把a1放进了,a2里面,那么会可以打印出来吗,我们看效果
可以看到,是可以打印出来的,我们把a1放在了 ’t’ 前面,然后 a1,直接又是重新打印了数组,并没有影响a2的数组,可见数组里是可以有数组的
- 数组里面又有数组的情况,我们将这个样的数组称为多维数组 ,二维数组
我们在看一个:
... ...
var a1 = [1,4,'k','l'];
var a2 = [6,7,a1,'t'];
var a3 = [4,a2,'p'];
console.log(a3);
</script>
</html>
这样的我们称之为 三维数组
那我们可能会说了,既然这样有都有三维数组了,有没有四维数组,五维数组,甚至一百维数组,或者更大呢
其实是可以的,数组的维度数是没有限制的,那么同样数组维度多了,数值肯定也是特别多的,但是只要你的内存够大,就能存,但是你的维度越大,请注意,这样用起来是肯定会难的,这一点是需要注意的.