案例
案例1
一个人最多拿10瓶啤酒,那么如何拿20瓶啤酒?
案例2
一个班级的学生有30人,如何用变量表示这30人的数学成绩?用30个变量吗?
应该使用数组,数组的作用相当于上面的啤酒箱,可以装入30人的数学成绩
int lilei=80;
int hanmeimei=87;
.........
int lucy=85;
数组
数组就是:集合,存储数据,按一定的 顺序排列
菜鸟教程:
https://www.runoob.com/jsref/jsref-obj-array.html
定义
方式一(常用)
空数组
var 数组名 = [];
方式二(常用)
定义数组同时赋值元素
var 数组名 = ['李雷',18 , 1.82 , true];
方式三
var 数组名=new Array();
方式四
var 数组名=new Array('李雷',18 , 1.82 , true);
常见操作
索引
相当于 编号 ,数组中的每一个元素,都会有一个编号,从0开始
注意: 索引从0开始
数组的访问
初始化数组后,通过 索引 访问
格式:
数组名[索引]
例子:
查看动态初始化数组的元素值:
var arr = ['李雷',18 , 1.82 , true];
System.out.println(arr[0]);
执行结果为:李雷
数组的修改
通过索引修改
格式:
数组名[索引]=值;
例子:
var arr = [];
arr[0]='李雷';
arr[1]=20;
arr[2]=1.82;
arr[3]=true;
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
console.log(arr[3]);
数组的长度属性
数组都有长度,表示数组有多少个元素,通过 数组名.length获取,number 类型。由次可以推断出
数组的最大索引:数组名.length-1
var arr = ['李雷',18 , 1.82 , true];
console.log(arr.length);
数组遍历【重点】
就是将数组中的每个元素获取出来,需要配合 循环语句
var arr = ['李雷',18 , 1.82 , true];
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
splice() 方法
插入元素
var arr = ['李雷',18 , 1.82 , true];
arr.splice(2, 0, "lucy", "lili") // 从索引是2的位置开始插入
console.log(arr.toString())
参数:
第一个参数
2:表示新元素添加到 索引 是2的位置第二个参数
0:表示删除0个元素其余参数:表示要添加的新元素
返回:
- 当删除时,有返回值,表示包含已删除项的数组
根据索引删除元素
var arr = ['李雷',18 , 1.82 , true];
var arr2=arr.splice(1, 1) // 从索引是1的位置开始删除,删除1个元素
console.log(arr.toString())
console.log(arr2.toString())
参数:
第一个参数
1:从 索引 是1的位置开始删除第二个参数
1:删除1个元素
其他操作
转换为字符串
var arr = ['李雷',18 , 1.82 , true];
console.log(arr.toString())
将数组元素组合为一个字符串
var arr = ['李雷',18 , 1.82 , true];
console.log(arr.join(','))
slice()切片
从数组中截取一个新的数组
var arr = ['李雷',18 , 1.82 , true];
var arr2=arr.slice(1,3);
console.log(arr2.toString())
slice() 参数:
- 第1个参数:从该索引处开始截取。
可以是负数,-1表示倒数第1个元素,-2表示倒数第2个元素 - 第2个参数:截止到该索引处(不包含该元素)。不写此参数表示截取到末尾
可以是负数,-1表示倒数第1个元素,-2表示倒数第2个元素
返回:
- 返回截取的数组
根据 值 获取 第一次出现的位置
根据 值 获取 第一次出现的位置(索引)
var arr = ['李雷',18 , 1.82 , true];
var index=arr.indexOf(1.82);
console.log(index)
根据值删除元素
var arr = ['李雷',18 , 1.82 , true];
var index=arr.indexOf(1.82);
arr.splice(index,1)
console.log(arr.toString())
在数组头部插入元素
var arr = ['李雷',18 , 1.82 , true];
arr.unshift('韩梅梅')
在数组末尾添加元素
var arr = ['李雷',18 , 1.82 , true];
arr.push("韩梅梅")
删除第一个元素
var arr = ['李雷',18 , 1.82 , true];
var v = arr.shift() // 返回第一个被删除的元素
console.log(v)
console.log(arr)
删除最后一个元素
var arr = ['李雷',18 , 1.82 , true];
var v = arr.pop() // 返回最后一个被删除的元素
console.log(v)
console.log(arr)
判断元素是否存在
var students = new Array(4);
students[0] = "李雷";
students[1] = "韩梅梅";
students[3] = "lucy";
students[4] = "lili";
// 判断数组中是否包含某个元素
var res = students.includes("lucy")
console.log("res:",res)
var res2 = students.includes("张三")
console.log("res2:",res2)
合并(连接)数组
var arr = ['李雷',18 , 1.82 , true];
var arr2 = ['韩梅梅',17 , 1.62 , false];
var arr3 = arr.concat(arr2);
console.log(arr3.toString())
特点:
- 不会更改现有数组。它总是返回一个新数组
- 可以连接n个数组。
arr.concat(arr2,arr3);
清空数组
arr.length = 0

