JavaScript数组与数组案例
数组类型
数组是一个容器,元素有序排列。是一种复杂数据类型
数组作用 : 可以在变量中 ‘存储多个数据’
数组内存原理 : 数组内存由三个部分组成(数组三要素)
-
元素: 数组中的数据
-
下标: 元素的位置
-
长度: 元素的数量
数组语法
数组声明: let 数组名 = [元素1,元素2,元素3,.......]
数组取值 数组名[下标]
数组长度 数组名.length
1.声明数组 let 数组名 = [数据1,数据2,数据3,.....]
let names = ['小明','小刚','小花']
2.数组取值 数组名[下标]
console.log( names )//['小明', '小刚', '小花']
console.log( names[0] )//小明
3.数组长度 数组名.length
console.log(names.length)//5
数组遍历
数组遍历: 依次读取数组每一个元素值
固定格式的for循环:
for(let i = 0;i < arr.length ;i++){
arr[i]
}
let names = ['小明','小刚','小花','小美','小彪']
遍历数组: for循环
for(let i = 0;i < names.length;i++ ){
console.log( names[i] )
}
// console.log( names[0] )
// console.log( names[1] )
// console.log( names[2] )
// console.log( names[3] )
// console.log( names[4] )
数组操作(增删改查)
- 查询与修改元素
声明数组 let 数组名 = [元素1,元素2,元素3,....]
2.数组取值(查) 数组名[下标]
3.数组赋值(改) 数组名[下标] = 值
let arr = [ 20,66,88,50,100 ]
数组取值
(1)如果下标存在,则会获取元素值
(2)如果下标不存在,则会获取undefined
console.log( arr[2] )//88
console.log( arr[6] )//undefined
数组赋值
(1)如果下标存在,则获修改元素值
(2)如果下标不存在,
arr[0] = 99//修改0下标元素值
arr[6] = 70//动态新增一个元素
console.log(arr)
- 新增元素(push与unshift)
数组新增有两个方法
数组名.push(元素) : 一个或多个元素,添加到末尾
数组名.unshift(元素) : 一个或多个元素,添加到末尾
let arr = [20,50,88,60,100]
1. 添加到末尾
arr.push(90,200)
console.log(arr)
2. 添加到开头
arr.unshift(5,8)
console.log(arr)
- 删除元素(pop与shift)
let arr = [10,20,30,40,50]
1.删除最后一个元素 arr.pop()
arr.pop()
console.log(arr)
2删除第一个元素 arr.shift()
arr.shift()
console.log( arr )
- 删除指定元素
let arr = [10,20,30,40,50]
arr.splice(start,deleteCount)
第一个值: 起实位置。 从0开始
第二个值: 要删除的数量
如果没有指定数量,则会删除从起始位置到后面所有元素
arr.splice(1,2)//表示从下标1开始,往后删除2个元素.把20,30给删除了
console.log(arr)//[10,40,50]
数组练习案例
数组求和
求一组数据的 总和
(1)声明一个变量存储结果
(2)遍历数组中每一个元素
(3)累加
let arr = [20, 50, 66, 88, 70]
1.声明空变量存储结果
let sum = 0
2.遍历数组
for (let i = 0; i < arr.length; i++) {
console.log(arr[i])
3.累加
sum += arr[i]
}
console.log(sum, sum / arr.length)
求数组最大元素与最小元素
```css
求数组最大值
1.声明变量默认为第一个元素
2.遍历数组
3.依次比较大小,然后赋值
let arr = [20,50,66,88,70]
1.声明变量默认为第一个元素
let max = arr[0]
2.遍历数组
for(let i = 1;i < arr.length;i++){
console.log( arr[i] )
3.比较大小,然后赋值
if( arr[i] > max){
max = arr[i]
}
}
console.log(max)
筛选数组
将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组
1.找出指定范围符合条件的数
2.把符合条件的数放入新数组中(新增元素)
let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
1.声明空数组
let newArr = []
2.遍历旧数组,找出符合条件的数
for(let i = 0;i<arr.length;i++){
if( arr[i] >= 10 ){
3.添加到新数组中
console.log(arr[i])
newArr.push( arr[i] )
}
}
console.log( newArr )
数组去0
将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中的 0 去掉后,形成一个不包含 0 的新数组
let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
//1.声明空数组存储结果
let newArr = []
//2.遍历数组,找出不为0的元素
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== 0) {
console.log(arr[i])
//3.新增到空数组
newArr.push(arr[i])
}
}
console.log(newArr)