1.数组是什么
2.数组的基本使用
3.操作数组
4.数组案例
一、数组是什么?
1.数组(Array)是一种可以按顺序保存数据的数据类型
2.为什么要使用数组?
例如:如果想保存一个班所有同学的姓名怎么办?
场景:如果有多个数据可以用数组保存起来,然后放到一个变量中,管理非常方便。
二、数组的基本使用
1.声明语法
let 数组名 = [数据1,数组2,…,数据n]
let arr = new Array(数据1,数据2,…,数据n)
//1.字面量声明数组
let arr = [1,2,'pink',true];
//2.使用new Array构造函数声明
let arr1 = new Array(1,2,3,4);
console.log(arr);
*数组是按顺序保存,所以每个数据都有自己的编号
*计算机中的编号从0开始,到1,2,3,…,以此类推
*在数组中,数据的编号也叫索引或下标
*数组可以存储任意类型的数据
2.取值语法
数组名[下标]
let names = ['小明','小丽','小雅','小米'];
name[0] //小明
name[1] //小丽
*通过下标取数据
*取出来是什么类型的,就根据这种类型特点来访问
3.一些术语
元素:数组中保存的每个数据都叫数组元素
下标:数组中数据的编号
长度:数组中数据的个数,通过数组的length属性获得
let names = ['小明','小丽','小雅','小米'];
name[0] //小明
name[1] //小丽
console.log(names.length);//4
4.遍历数组(重点)
目标:能够遍历输出里面的元素
1.用循环把数组中每个元素都访问到,一般会用for循环遍历
2.语法:
for(let i = 0;i < 数组名.length;i++){
数组名[i];
}
3.例:
let nums = [10,20,30,40,50,60];
for(let i = 0;i < nums.length;i++){
document.write(nums[i]);
}
5.数组排序
数组.sort()方法可以排序
语法:
let arr = [4,2,5,1,3]
//1.升序
arr.sort(function(a,b){
return a-b;
})
console.log(arr)//[1,2,3,4,5]
//2.降序
arr.sort(function(a,b){
return b-a;
})
console.log(arr)//[5,4,3,2,1]
三、操作数组
数组本质是数据集合,操作数据无非就是增删改查语法:
let arr = [];
//查询
console.log(arr);//[]
console.log(arr[0]);//undefined
arr[0] = 1;
arr[1] = 5;
console.log(arr);//[1,5]
//修改
arr[0] = 'hotpink';
console.log(arr);//['hotpink',5]
新增:
1.掌握利用push向数组添加元素(数据)
*数组.push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度(重点)。
*语法
arr.push(元素1,…,元素n)
*例如:
let arr = ['red','green']
arr.push('pink');
console.log(arr);//['red','green','pink']
2.在数组开头添加数据元素用unshift方法
arr.unshift()
可以添加一个或者多个数组元素
返回的是数组长度
删除:
1.pop()删除最后一个元素
*数组.pop()方法从数组中删除最后一个元素,并返回该元素的值
*语法:
arr.pop()
*例如:
let arr = ['red','green']
arr.pop()
console.log(arr) //['red']
2.shift()删除第一个元素
let arr = ['red','green','blue']
arr.shift()
console.log(arr)//['green','blue']
3.splice()删除指定元素
*数组.splice()方法,删除指定元素
*语法:
arr.splice(start,deleteCount)
arr.splice(起始位置,删除几个元素)
start从0开始,deleteCount可选,如果省略默认从开始位置删除到最后。
使用场景:随机抽奖,删除指定商品
```javascript
let arr = ['red','green','blue']
arr.splice()
console.log(arr)//['green','blue']
四、数组案例
1.数组求和
let arr = [2,6,1,7,4];
let sum = 0;
for(let i=0;i<arr.length;i++){
sum += arr[i]
}
console.log(`数组的和的结果是:${sum}`);
console.log(`数组的平均值结果是:${sum/arr.length}`);
2.求最大值最小值
let arr = [2,6,1,7,8];
let max = arr[0];
let min = arr[0];
for(let i = 1;i < arr.length;i++){
//方法1:
// if(max < arr[i]){
// max = arr[i];
// }
// if(min > arr[i]){
// min = arr[i];
// }
//方法2:
max < arr[i] ? max = arr[i] : max;
min > arr[i] ? min = arr[i] : min;
}
console.log(`最大值是:${max}`);
console.log(`最小值是:${min}`);
3.数组筛选
1.选出数组中大于等于10的元素
let arr = [2,0,6,1,77,9,54,3,78,9];
//1.声明新数组
let newArr = [];
//2.遍历旧数组
for(let i = 0;i < arr.length; i++){
if(arr[i] >= 10){
//3.满足条件追加给新的数组
newArr.push(arr[i]);
}
}
//4.输出新的数组
console.log(newArr);
2.数组去0
let arr = [23,0,1,324,10,20,34,50,9];
let newArr = [];
for(let i = 0;i < arr.length;i++){
if(arr[i] !== 0){
newArr.push(arr[i]);
}
}
console.log(newArr);