01-流程控制-循环语句
1.1-while循环
<script>
打印3次班长爱坤哥
复制粘贴弊端:(1)代码冗余 (2)维护不便
console.log( '班长爱坤哥' )
console.log( '班长爱坤哥' )
console.log( '班长爱坤哥' )
循环结构:代码重复执行
while循环语法
while( 条件 true/false ){
循环体:需要重复执行的代码
}
执行规则
1.判断条件是否成立
1.1 true : 则执行循环体代码
1.2 false : 循环结束,执行大括号后面的代码
2.重复步骤1
1.声明变量记录循环次数(循环变量)
let num = 1
2.循环条件
while (num <= 10) {
console.log("班长爱坤哥")
3.循环变量自增
num++
}
console.log("班长完事了")
</script>
1.2-for循环
<script>
for循环: 1.声明循环变量 2.循环条件 3.循环变量自增 写在一个小括号中,代码更加简洁易读
语法:
for(语句1;语句2;语句3){
循环体:需要重复执行的代码
}
执行规则
1. 执行语句1(声明循环变量)
2. 判断语句2结果是否成立(循环条件)
2.1 true : 执行循环体
* 2.1.1 执行语句3(循环变量自增)
2.2 false: 循环结束,执行大括号后面的代码
3. 重复步骤2
for(let i = 1; i <= 3;i++){
console.log('班长爱坤哥')
}
console.log('班长完事了')
</script>
1.3-break与continue关键字
<script>
continue : 结束本次循环体,立即进入下一次循环判断
continue关键字只能用于循环语句
break: 结束整个循环语句,立即执行大括号后面的代码
break关键字可以用于 循环语句 + switch-case
模拟吃10个饺子
for (let i = 1; i <= 10; i++) {
continue : 吃到第五个饺子,发现虫子。 第五个饺子不吃,但是没吃饱后面饺子继续吃
if( i === 5 ){
continue
}
break : 吃到第五个饺子,吃饱了。 后面的饺子不吃了。
if (i === 5) {
break
}
document.write(`<p>我正在吃第${i}个饺子</p>`)
}
</script>
02-循环嵌套
1.1-循环嵌套介绍
<script>
循环嵌套(双重循环) : 循环里面 嵌套 一个循环
举例: 打印 4行5列星星,一次只能打印一个
☆ ☆ ☆ ☆ ☆
☆ ☆ ☆ ☆ ☆
☆ ☆ ☆ ☆ ☆
☆ ☆ ☆ ☆ ☆
外层循环:行数
for (let i = 1; i <= 4; i++) {
内层循环:列数
for(let j = 1;j <= 5;j++){
document.write('☆ ')
}
document.write('<br>')
}
</script>
03-数组类型
1.1-数组介绍
<script>
1.数组是什么? : 是一种复杂数据类型
2.数组作用? : 可以在变量中 ‘存储多个数据’
3.数组内存原理? : 数组内存由三个部分组成(数组三要素)
元素: 数组中的数据
下标: 元素的位置
长度: 元素的数量
需求:存储 五个人名字
弊端:(1)代码冗余 (2)维护不便
let s1 = '小明'
let s2 = '小刚'
let s3 = '小花'
let s4 = '小美'
let s5 = '小白'
使用数组: 一个变量存储多个数据
let array = ['小明','小刚','小花','小美','小白']
console.log( array )
</script>
1.2-数组语法
<script>
1.数组声明: let 数组名 = [元素1,元素2,元素3,.......]
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
</script>
1.3-数组遍历
<script>
1.数组语法
(1).数组声明: let 数组名 = [元素1,元素2,元素3,.......]
(2).数组取值 数组名[下标]
(3).数组长度 数组名.length
2.数组遍历: 依次读取数组每一个元素值
固定格式的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] )
</script>
04-数组操作(增删改查)
1.1-查询与修改元素
<script>
1.声明数组 let 数组名 = [元素1,元素2,元素3,....]
2.数组取值(查) 数组名[下标]
3.数组赋值(改) 数组名[下标] = 值
let arr = [ 20,66,88,50,100 ]
数组取值
(1)如果下标存在,则会获取元素值
(2)如果下标不存在,则会获取undefined
console.log( arr[2] )
console.log( arr[6] )
数组赋值
(1)如果下标存在,则获修改元素值
(2)如果下标不存在,
arr[0] = 99
arr[6] = 70
console.log(arr)
</script>
1-2-新增元素(push与unshift)
<script>
数组新增有两个方法
数组名.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)
</script>
1.3-删除元素(pop与shift)
<script>
let arr = [10,20,30,40,50]
1.删除最后一个元素 arr.pop()
arr.pop()
console.log(arr)
2删除第一个元素 arr.shift()
arr.shift()
console.log( arr )
</script>
1.4-删除指定元素
<script>
let arr = [10,20,30,40,50]
arr.splice(start,deleteCount)
第一个值: 起实位置。 从0开始
第二个值: 要删除的数量
如果没有指定数量,则会删除从起始位置到后面所有元素
arr.splice(1,2)
console.log(arr)
</script>
05-数组应用
1.1-数组求和
<script>
本案例思路在开发中很常见,叫做累加和 : 求一组数据的 总和
(1)声明一个变量存储结果
(2)遍历数组中每一个元素
(3)累加
let arr = [20, 50, 66, 88, 70]
1.声明空变量存储结果
let sum = 0
2.遍历数组
for (let i = 0
console.log(arr[i])
3.累加
sum += arr[i]
}
console.log(sum, sum / arr.length)
</script>
1.2-求数组最大元素与最小元素
<script>
求数组最大值
1.声明变量默认为第一个元素
2.遍历数组
3.依次比较大小,然后赋值
let arr = [20,50,66,88,70]
1.声明变量默认为第一个元素
let max = arr[0]
2.遍历数组
for(let i = 1
console.log( arr[i] )
3.比较大小,然后赋值
if( arr[i] > max){
max = arr[i]
}
}
console.log(max)
</script>
1.3-筛选数组
<script>
需求:将数组 [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
if( arr[i] >= 10 ){
3.添加到新数组中
console.log(arr[i])
newArr.push( arr[i] )
}
}
console.log( newArr )
</script>
1.4-数组去0
<script>
需求:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中的 0 去掉后,形成一个不包含 0 的新数组
实际开发场景:去除数组中指定的元素,生成新数组
(1)微信账单: 收入 + 支出。 需求是只看收入(支出类型去除)
(2)商品列表 : 京东自营(把非自营商品去除)
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)
</script>