一、数组的基本使用
数组:(Array)是一种可以按顺序保存多个数据的 数据类型(复杂数据类型)
数组的使用方法:
1、声明语法
//字面量生成 []
let arr = ['张三', '李四', '王五', '小芳', 18, 20]
// 0 1 2 3 4 5
console.log(arr);
2、取值语法 数组名[下标]
下标:数组中数据的编号,从0开始
let arr = ['张三', '李四', '王五', '小芳', 18, 20]
// 0 1 2 3 4 5
//2.取值语法 数组名[下标]
console.log(arr[3]);//控制台打印输出 小芳
console.log(arr[1]);//李四
3、数组的长度:数组中数据的个数,通过数组的length属性获得
// 数组的长度
let arr = ['张三', '李四', '王五', '小芳', 18, 20]
console.log(arr.length);//6 数组中总共有6项
console.log(arr[arr.length - 1]);//20 拿到数据中的最后一项
举例::定义一个数组,里面存放星期一、星期二…… 直到星期日(共7天),在控制台输出:星期日
<body>
<script>
let day = ['星期一','星期二','星期三','星期四','星期五','星期六','星期天']
//方法一
console.log(day[6]);
//方法二
console.log(day[day.length - 1])
</script>
</body>
二、遍历数组
能够遍历输出数组里面的元素,用循环把数组中每个元素都访问到,一般会用for循环遍历
<body>
<script>
let week = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
for (let i = 0; i < week.length; i++) {
console.log(i);//数组的下标
// 获取数组里面每一项元素
console.log(week[i]);
}
// 注意点:i需要从0开始,因为数组的下标是从0开始
</script>
</body>
举例::求数组[10,20,30,40,50] 里面所有元素的和以及平均值
<body>
<script>
// 1.定义一个数组保存数据
let arr = [10,20,30,40,50]
let sum = 0
// 2.遍历数组,拿到数组里面的每一项元素
for (let i = 0; i < arr.length; i++) {
// i 此时i就是数组的下标
// 获取每一项元素 数组名[下标]
// console.log(arr[i]);//2 6 1 7 4
// 3.获取元素进行累加,定义一个累加和变量保存
// sum = sum + arr[i]
sum += arr[i]
}
console.log(`所有元素的和为${sum}`);
// 4.通过和,获取平均值 平均值=和 / 数组的长度
console.log(`平均值为${sum / arr.length}`);
</script>
</body>
案例一:求数组 [2,6,1,77,52,25,7] 中的最大值
<body>
<script>
// 需求:求数组 [2,6,1,77,52,25,7] 中的最大值
// 1.定义一个数组,保存数据
let arr = [2, 6, 1, 77, 52, 25, 7]
// 2.从数组里面挑选出一个值,默认当成最大值.赋值给max变量
let max = arr[0]
let min = arr[0]
// 3.遍历数组,获取数组的每一项元素
for (let i = 0; i < arr.length; i++) {
// console.log(arr[i]);
// 4.拿到每一项和最大值进行比较,如果比最大值要大,max要重新赋值
if (max < arr[i]) {
max = arr[i]
}
if (min > arr[i]) {
min = arr[i]
}
}
console.log(max);
console.log(min);
// 需求:求数组 [2,6,1,77,52,25,7] 中的最小值
</script>
</body>
三、数组的 增 删 改 查 语法
1、数组的查的语法: 数组名[下标] 或者 用长度length
<body>
<script>
let arr = ['张三', '李四', '王五', '小芳', 18, 20]
//数组的查的语法:数组名[下标]
console.log(arr[3]);
// 查最后一个
console.log(arr[arr.length - 1]);
</script>
</body>
2、数组的改的语法:数组名[下标] = 新值
<body>
<script>
let arr = ['张三', '李四', '王五', '小芳', 18, 20]
//数组的改的语法:数组名[下标] = 新值
arr[3] = '粉丝'
console.log(arr);
</script>
</body>
3、数组尾部新增的语法:数组名.push(新增的内容) 重点!!!
<body>
<script>
let arr = ['张三', '李四', '王五', '小芳', 18, 20]
// 数组的增的语法:数组名.push(新增的内容)
console.log(arr.push('苹果'));
console.log(arr);
</script>
</body>
4、 数组头部新增方法:unshift()
<body>
<script>
let arr = ['张三', '李四', '王五', '小芳', 18, 20]
// 数组头部新增方法:unshift()
console.log(arr.unshift ('前端'));
console.log(arr);
</script>
</body>
5、删除数组头部元素的语法:shift()
<body>
<script>
let arr = ['张三', '李四', '王五', '小芳', 18, 20]
// 删除数组头部元素的语法:shift()
console.log(arr.shift());
console.log(arr);
</script>
</body>
6、删除数组尾部的语法:pop() 括号里面不要写任何东西
7、删除数组中指定元素的语法:splice(起始位置,删除的个数)
8、splice 的隐藏用法 删除数组中指定元素的语法:splice(起始位置,删除的个数,新增的元素)
案例一、将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组
<body>
<script>
let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
// 分析: 1.定义一个新数组,保存不为0的数字
let newArr = []
// 2.遍历老数组,筛选出来不为0,大于或者小于0 数字
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== 0) {
// 3.把筛选出来的数字通过push方法添加到新数组中
newArr.push(arr[i])
}
}
console.log(`不包含0的新数组是:${newArr}`);
</script>
</body>
案例二、删除数组中[2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 为0的数据,并统计0出现的次数
<body>
<script>
let arr = [88, 0, 45, 9, 0, 0, 66]
// 定义一个记录的初始值
let a = 0
// 1.遍历数组获取里面每一项
for (let i = 0; i < arr.length; i++) {
// 2.判断每一项是否为0,为0删除并且记录+1
if (arr[i] === 0) {
// 删除
arr.splice(i, 1)
// 解决删除之后数组的长度和下标会进行变化,i依然是自增,会导致跳过判断,因此需要回到上一次的索引
i--
// 记录+1
a++
}
}
console.log(arr);
console.log(a);
</script>
</body>
四、数组的排序 sort() 方法
1、升序
<body>
<script>
// 升序 从小到大
let arr = [10,200,80,5,900,300]
arr.sort (function (a,b) {
return a - b
})
console.log(arr);
</script>
</body>
2、降序