JavaScript基础知识笔记 第三天
一、循环-for
1.for循环基本使用
语法:
for(变量初始值(let i=0);终止条件(i<10);变量变化量(i++)){
循环体
}
案例
需求: 请将 数组 [‘马超’,‘赵云’, ‘张飞’, ‘关羽‘,’黄忠’] 依次打印出来
let arr=[‘马超’,‘赵云’, ‘张飞’, ‘关羽‘,’黄忠’]
for(let i=0;i<arr.length;i++){
document.write(arr[i])
}
退出循环:
continue退出本次循环
break退出整个循环
注意:for、while构造无限循环,都可以使用break退出循环
知道要循环几次用for循环,不知道循环几次用while循环
2.循环嵌套
语法:
for(外层变量初始值(let i=0);终止条件(i<10);变量变化量(i++)){
循环体
for(内层变量初始值(let i=0);终止条件(i<10);变量变化量(i++)){
循环体
}
}
外层执行一次,内层执行设置的总次数,eg:上面循环的是10次,也就是外层循环一次,内层循环十次,总共循环100次。
案例
需求: 页面中打印出5行5列的星星
①:利用双重for循环来做
②:外层循环控制打印行,内层循环控制每行打印几个(列)
for (let i = 0; i < 5; i++) {
for (let j = 0; j < 5; j++) {
document.write('⭐')
}
document.write('</br>')
}
案例
九九乘法表
①:只需要把刚才倒三角形星星做改动
②: ★ 换成 1 x 1 = 2 格式
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= i; j++) {
document.write(` ${i} X ${j}=${i * j} `)
}
document.write('</br>')
}
二、数组(似乎之前写过)
1.数组是什么
一种可以按顺序保持数据的数据类型
2,数组的基本使用
语法:
let 数组名=[数据1,数据2...]
术语:
元素:数组中保存的每个数据都叫数组元素
下标:数组中数据的编号
长度:数组中数据的个数,通过数组的length属性获得
遍历数组(重点)
for(let i=0;i<数组名.length;i++){
数组名[i]
}
案例
需求:求数组 [2,6,1,7,4] 里面所有元素的和以及平均值
①:声明一个求和变量 sum。
②:遍历这个数组,把里面每个数组元素加到 sum 里面。
③:用求和变量 sum 除以数组的长度就可以得到数组的平均值。
let arr = [2, 6, 1, 7, 4]
let sum = 0
for (let i = 0; i < arr.length; i++) {
sum += arr[i]
}
let avg = sum / arr.length
document.write(sum)
document.write(avg)
案例
需求:求数组 [2,6,1,77,52,25,7] 中的最大值
①:声明一个保存最大元素的变量 max。
②:默认最大值可以取数组中的第一个元素。
③:遍历这个数组,把里面每个数组元素和 max 相比较。
④:如果这个数组元素大于max 就把这个数组元素存到 max 里面,否则继续下一轮比较。
⑤:最后输出这个 max
let arr = [2, 6, 1, 77, 52, 25, 7]
let max = arr[0]
for (let i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i]
}
}
document.write(max)
3.操作数组
数组本质是数据集合,即有增 删 改 查 语法:
(1)增
数组.push ——将一个或多个元素添加到数组的末尾,返回的是该数组新的长度(重点⭐)
语法:
arr.push(元素1,元素2...)
eg:
let arr=['red','green']
arr.push('pink')
//['red',green','pink']
数组.unshift(新增内容) ——将一个或多个元素添加到数组的开头,返回的是该数组新的长度
语法:
arr.unshift(元素1,元素2...)
eg:
let arr=['red','green']
arr.unshift('pink')
//['pink','red',green']
案例
需求:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组
①:声明一个新的数组用于存放新数据newArr
②:遍历原来的旧数组, 找出大于等于 10 的元素
③:依次追加给新数组 newArr
let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
let newArr = []
let j = 0
for (let i = 0; i < arr.length; i++) {
if (arr[i] >= 10) {
newArr[j] = arr[i]
j++
}
}
document.write(newArr)
案例
需求:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中的 0 去掉后,形成一个不包含 0 的新数组
①:声明一个新的数组用于存放新数据newArr
②:遍历原来的旧数组, 找出不等于0的元素
③:依次追加给新数组 newArr
let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
let newArr = []
let j = 0
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== 0) {
newArr[j] = arr[i]
j++
}
}
document.write(newArr)
(2)删
数组.pop() ——从数组中删除最后一个元素,返回数组剩下的元素
语法:
arr.pop() #括号内无需填写,会直接删除数组内的最后一个元素
eg:
let arr=['red','green']
arr.pop()
//['red']
数组.shift() ——从数组中删除第一个元素,返回数组剩下的元素
语法:
arr.shift()
eg;
let arr=['red','green']
arr.shift()
//['green']
数组.splice() ——括号内填写你选择的元素,删除指定元素
语法:
arr.splice(start,deleteCount)
#strat:从0开始计数,选择开始的位置
#deleteCount:表示要删除的个数,省略的话默认从开始位置直至最后
补充:
冒泡排序(后面补充)
数组排序
数组.sort() ——排序
语法:
let arr=[4,2,5,1,3]
//升序排列
arr.sort(function(a,b){
return a - b
})
console.log(arr)//[1,2,3,4,5]
//降序排列
arr.sort(function(a,b){
return b - a
})
console.log(arr)//[5,4,3,2,1]