JavaScript第三天
for循环
好处:把声明起始值、循环条件、变化值写在一起,让人一目了然
for (起始条件; 循环条件; 变化量) {
循环体
}
退出循环
break:退出整个循环
continue:退出当次循环
let arr = ['虾饺', '蒸排骨', '虫子', '红米肠', '糯米鸡']
for (let i = 0; i < arr.length; i++) {
if (arr[i] === '虫子') {
console.log('我吃到虫子了,爷不吃了')
// 终止循环
// continue
break
}
console.log(`我吃了${arr[i]},好开心啊`);
}
循环嵌套
for (let i = 1; i <= 3; i++) {
document.write(`今天是第${i}天<br>`)
for (let j = 1; j <= 5; j++) {
document.write(`我记住了今天第${j}个单词<br>`)
}
document.write(`<br>`)
}
打印五行五列小星星
// 用户输入对应的行数和列数 打印对应的星星★
// 先打印 3行
// 利用prompt 收集用户输入的行数和 列数
let row = +prompt('请输入行数')
let col = +prompt('请输入列数')
for (let i = 1; i <= row; i++) {
for (let j = 1; j <= col; j++) {
document.write(`★`)
}
document.write(`<br>`)
}
打印倒三角形星星
// 1. 打印五行出来
for (let i = 1; i <= 5; i++) {
for (let j = 1; j <= i; j++) {
document.write(`★`)
}
document.write(`<br>`)
}
打印99乘法表
// 1. 打印几行? 9行
// 2. 每行打印几个div? 当前行数个div
// 外层循环 1 - 9
for (let i = 1; i <= 9; i++) {
for (let j = 1; j <= i; j++) {
document.write(`<div>${j} x ${i} = ${i * j}</div>`)
}
document.write(`<br>`)
}
数组遍历
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
数组操作
增加数组元素
push() 在数组最后面增加一个数组元素
let arr = ['red', 'green']
arr.push('blue')
console.log(arr)
unshift() 在数组最前面增加一个数组yuans
let arr = ['red', 'green']
let res = arr.unshift('blue', 'orange')
console.log(arr);
console.log(res);
筛选数组案例
// 将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组
// 1. 准备一个空数组
let newArr = []
// 2. 创建筛选数组
let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
// 循环遍历
for (let i = 0; i < arr.length; i++) {
// 如果遍历的当前项目 大于等于10
if (arr[i] >= 10) {
// 我要把当前项推入到newArr中
newArr.push(arr[i])
}
}
console.log(newArr);
删除数组案例
pop() 在数组最后面删除一个数组元素
let arr = ['李狗蛋', '张翠花', '赵铁柱']
console.log(arr.pop());
console.log(arr);
shift() 在数组最前面删除一个数组元素
let arr = ['李狗蛋', '张翠花', '赵铁柱']
console.log(arr.shift());
console.log(arr);
splice(起始索引,删除几个元素) 删除几个元素的值如果不写则代表从起始位置删到最后
let arr = ['李狗蛋', '张翠花', '赵铁柱', '貂蝉', '西施', '王昭君', '杨玉环']
// 如果第二个值省略,则代表一直删除到最后
// arr.splice(3)
// 当索引为负值的时候 代表数组中倒数第几个元素
// arr.splice(-1, 1)
console.log(arr.splice(1, 4));
冒泡排序
let arr = [5, 4, 3, 2, 1]
for (let i = 1; i <= arr.length - 1; i++) {
document.write(`这是第${i}轮的交换`)
// 内层循环?次 + 当前的轮次 = 数组的长度
// 内层循环?次 = 数组的长度 - 当前的轮次
// 内层循环?次 = arr.length - i
for (let j = 1; j <= arr.length - i; j++) {
// document.write(`<br>我要交换啦<br>`)
if (arr[j - 1] > arr[j]) {
let temp = arr[j - 1]
arr[j - 1] = arr[j]
arr[j] = temp
}
}
document.write(`<br>`)
}
console.log(arr);
// let num1 = 10
// let num2 = 20
// // 还要创建一个临时变量
// let temp = num1
// num1 = num2
// num2 = temp
// console.log(num1, num2);
\