一、概述 1.1、问题 思考:之前学习过变量,我们说变量的本质是计算机内存的一块空间,而我们定义的一个变量,一次只能存储一个值,比如说,张三的姓名存储起来,可以定义一个username
这样的变量。但是问题是:如果我们想存储班级中所有学生的姓名,那么该如何存储呢?
答:可以使用数组(Array),数组可以把一组相关的数据一起存放,并提供非常方便的访问(获取)方式。
1.2、简介 1 2 3 # 1. 数组(Array)是指一组数据的集合,其中的每个数据被称作元素。 # 2. 在数组中可以存放任意类型的元素。 # 3. 存储一组具有“相同数据类型”的数据结构。
二、创建数组 2.1、概述 在JavaScript中,创建数组有整体来说,有两种方式。
2.2、利用 new 创建数组 2.2.1、新建一个长度为0的数组 1 2 3 4 <script > var arr = new Array (); </script >
2.2.2、新建长度为n的数组 1 2 3 4 <script > var arr = new Array (3 ); </script >
2.2.3、新建指定长度的数组,并赋值 1 2 3 4 <script > var arr = new Array (1 , 2 , 3 , 4 , 5 ); </script >
2.3、利用数组字面量创建数组 1 2 3 4 5 6 7 <script > var arr = []; var arr1 = ["张三" , "李四" , "王五" ]; </script >
数组的字面量是方括号 []
声明数组并赋值称为数组的初始化
这种字面量方式也是我们以后最多使用的方式
三、数组的下标 3.1、概述 索引 (下标) :用来访问数组元素的序号(数组下标从 0 开始)。
3.2、案例 1 2 3 4 5 6 7 8 9 10 <script > var arr = ["张三" , "李四" , "王五" ]; console .log (arr[0 ]); console .log (arr[1 ]); console .log (arr[2 ]); console .log (arr[3 ]); </script >
四、数组的长度 4.1、概述 使用“数组名.length”可以访问数组元素的数量(数组长度)。
4.2、案例 1 2 3 4 5 6 7 8 9 <script > var arr = ["张三" , "李四" , "王五" ]; var len = arr.length ; console .log ("该数组的长度是:" + len); </script >
4.3、注意
五、遍历数组 5.1、概述 就是把数组的元素从头到尾访问一次。
5.2、方式一 1 2 3 4 5 6 7 8 9 <script > var arr = ["张三" , "李四" , "王五" ]; for (var i = 0 ; i < arr.length ; i++) { console .log (arr[i]); } </script >
5.3、方式二 1 2 3 4 5 6 7 8 9 <script > var arr = ["张三" , "李四" , "王五" , "赵六" ]; for (var index in arr) { console .log (arr[index]); } </script >
5.4、方式三 1 2 3 4 5 6 7 8 9 <script > var arr = ["张三" , "李四" , "王五" , "赵六" , "猪头" ]; for (var item of arr) { console .log (item); } </script >
六、数组中新增元素 6.1、通过修改 length 长度新增数组元素
可以通过修改 length 长度来实现数组扩容的目的
length 属性是可读写的
1 2 3 4 5 6 7 8 9 <script > var arr = ["张三" , "李四" , "王五" ]; console .log ("数组的长度是:" + arr.length ); arr.length = 5 ; console .log (arr[3 ]); console .log (arr[4 ]); </script >
6.2、通过修改数组索引新增数组元素
1 2 3 4 5 6 7 8 9 10 11 <script > var arr = ["张三" , "李四" , "王五" ]; console .log ("数组的长度是:" + arr.length ); arr[5 ] = '赵六' ; console .log (arr[3 ]); console .log (arr[4 ]); console .log (arr[5 ]); </script >
7、数组练习 7.1、案例1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <script > var sum = 0 ; var average = 0 ; var arr = [2 , 6 , 1 , 7 , 4 ]; for (var i = 0 ; i < arr.length ; i++) { sum = sum + arr[i]; } average = sum / arr.length ; console .log (sum, average); </script >
7.2、案例2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <script > var arr = [2 , 6 , 1 , 77 , 52 , 25 , 7 ]; var max = arr[0 ]; for (var i = 1 ; i < arr.length ; i++) { if (max <= arr[i]) { max = arr[i]; } } console .log ("数组中最大元素是:" + max); </script >
7.3、案例3 7.3.1、需求 将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组。
7.3.2、方式一 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <script > var arr = [2 , 0 , 6 , 1 , 77 , 0 , 52 , 0 , 25 , 7 ]; var newArr = []; var j = 0 ; for (var i = 0 ; i < arr.length ; i++) { if (arr[i] > 10 ) { newArr[j] = arr[i]; j++; } } console .log ("新数组的元素:" + newArr); </script >
7.3.3、方式二 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <script > var arr = [2 , 0 , 6 , 1 , 77 , 0 , 52 , 0 , 25 , 7 ]; var newArr = []; for (var i = 0 ; i < arr.length ; i++) { if (arr[i] > 10 ) { newArr[newArr.length ] = arr[i]; } } console .log ("新数组的元素:" + newArr); </script >
7.4、翻转数组 7.4.1、需求 将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]的内容反过来存放。
7.4.2、方式一:存入新数组 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <script > var arr = [2 , 0 , 6 , 1 , 77 , 0 , 52 , 0 , 25 , 7 ]; var newArr = []; for (var i = arr.length - 1 ; i >= 0 ; i--) { newArr[newArr.length ] = arr[i]; } console .log (newArr); </script >
7.4.3、方式二:原来数组的基础上翻转 1 2 3 4 5 6 7 8 9 10 11 12 <script > var arr = [2 , 0 , 6 , 1 , 77 , 0 , 52 , 0 , 25 , 7 ]; for (var i = 0 ; i < arr.length / 2 ; i++) { var temp = arr[i]; arr[i] = arr[arr.length - i - 1 ]; arr[arr.length - 1 ] = temp; } console .log (arr); </script >