循环和数组
一、循环-for
1、for循环语法:也是重复执行代码
好处:把声明起始值、循环条件、变化值写到一起,让人一目了然
2、循环退出
循环结束: continue:结束本次循环,继续下次循环
<script>
// 举例:
//只显示 奇数 单数
for (let index = 1; index <= 10; index++) {
// 判断当前的Index是不是奇数
if(index%2!==0) {
// 不是偶数的话他就显示(只显示奇数)
// console.log(index)
// 不是偶数的话就跳过,输出后面的显示偶数
continue
}
console.log(index)
}
</script>
break:跳出所在的循环
<script>
// break举例:
for (let index = 1; index <=10; index++) {
//如果当前的index等于5,就不再往下循环,直接结束
if(index===5) {
break;
}
console.log(index)
}
</script>
3、循环嵌套
for 循环嵌套:一个循环里再套一个循环,一般用在for循环里
案例: 计算: 假如每天记住5个单词,3天后一共能记住多少单词? 拆解: 第一天 : 5个单词 第二天: 5个单词 第三天: 5个单词
<script>
// 1天 背5个
// 2天 背5个
// 3天 背5个
如果是手动输入的话可以套进去
// let num1=+prompt('输入天数')
// let num2=+prompt('输入记单词数')
// 外面表示每一天
for (let index1 = 1; index1 <=3; index1++) {
document.write(`第${index1}天<br/>`)
// 里面表示每天记多少
for (let index2 = 1; index2 <= 5; index2++) {
document.write(`记${index2}单词<br/>`)
}
}
</script>
二、数组
1、数组(Array)是一种可以按顺序保存数据的数据类型
为什么要数组? 思考:如果我想保存一个班里5个人的姓名怎么办? 如果有多个数据可以用数组保存起来
2、基本使用:
①声明语法 let 数组名=[数据1,数据2,数据3,.....,数据n]
例:
let names=['小明','小刚','小红','小丽','小米']
(1)数组是按顺序保存,所以每个数据都有自己的编号 (2)计算机中的编号从0开始,所以小明的编号为0,小刚编号为1,以此类推 (3)在数组中,数据的编号也叫索引或下标 (4)数组可以存储任意类型的数据
②取值语法 数组名[下标]
例
let names=['小明','小刚','小红','小丽','小米']
names[0]
names[1]
通过下标取数据 取出来是什么类型的,就根据这种类型特点来访问
②一些术语:
元素:数组中保存的每个数据都叫数组元素 下标:数组中数据的编号 长度:数组中数据的个数,通过数组的length属性获得
<script>
let name=['小罗','小陈','小丽','小爱','小美' ]
console.log(name[0]) 小罗
console.log(name[3]) 小丽
console.log(name.length) 5(一共5个)
</script>
③遍历数组:
用循环把数组中每个元素都访问到,一般会用for循环遍历 语法:
<script>
let arr=['10','20','30','40','50',]
for (let index = 0; index <arr.length; index++) {
// index从0开始变化1 2 3 4
console.log(index) ;
}
</script>
使用 数组做for循环固定写法:
1、 let index= 0 ;
2 、判断循环的条件: index < 数组的长度
三、操作数组
数组本质是数据集合, 操作数据无非就是 增 删 改 查 语法:
1. 数组增加新的数据
①数组.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度 (重点)
演示:
<script>
// 定义一个数组
let arr = ['苹果', '香蕉'];
// 多增加一个元素
arr.push("西瓜");
console.log(arr);//显示苹果,香蕉,西瓜
</script>
案例:
<script>
// 把数组中 大于等于10元素 存放到新的数组
let arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
// 存放过滤好元素的数组
let arr2 = [];
// 对 第一个数组 循环
for (let index = 0; index < arr1.length; index++) {
// 判断当前的循环的元素 和 10 直接的关系
if (arr1[index] >= 10) {
// 需要把当前的这个元素 添加到新数组中
arr2.push(arr1[index]);
}
}
console.log(arr2);最终显示77,52,25
</script>
②arr.unshift(新增的内容) 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度
演示:
<script>
let arr = ['black', 'red'];
// push 是把新的元素 设置到 数组的末位
// arr.push('yellow');
// unshift 是把新的元素 设置到数组的开头
arr.unshift("yellow");
console.log(arr);最终显示yellow,black,red
</script>
2.数组删除元素
①数组. pop() 方法从数组中删除最后一个元素,并返回该元素的值
②数组. shift() 方法从数组中删除第一个元素,并返回该元素的值
<script>
let arr=['你','我','他',]
arr.pop();
document.write(arr)//显示我,他, (你已被删掉)
</script>
③数组. splice() 方法 删除指定元素
<script>
let arr=['你','我','他','它']
// splice('想要删除的元素下标','想要删几个')
arr.splice(1,1) //删除我(从0开始数我的下标是1,从我开始数要删除几个就写几)
console.log(arr)
</script>
splice也有增加元素的功能哟:
<script>
let arr=['你','我','他','它']
arr.splice(1,0,'她')
console.log(arr)
</script>
在1的位置,删除0个元素,并且在1的前面添加了'她'
[你,她,我,他,它]
注意:
1.start 起始位置:
指定修改的开始位置(从0计数)
2.deleteCount:
表示要移除的数组元素的个数
可选的。 如果省略则默认从指定的起始位置删除到最后
补充
1、获取数组最后一个元素:arr.length-1
<script>
let arr=['你','我','他','它'];
// arr.length-1:(表示数组的长度,有4个元素,4-1=3)
console.log(arr[arr.length-2]);//0开始数第3个选中它
</script>
2、新增和修改数组
新增:
<script>
let arr=['你','我','他','它'];
// 这数组只有0123,没有4,也可以添加进去
arr[4]='她';
document.write(arr)//显示你,我,他,它,她
</script>
如果arr[10],要是10的位置有元素会被修改,没有的话
最终数组的长度会变成10,4,5,6,7,8,9,会是undefined
修改:
<script>
let arr=['你','我','他','它'];
// 把我修改成我们
arr[1]='我们';
document.write(arr)//显示你,我们,他,它
</script>
3、数组快速清空或者删除元素的方式
<script>
let arr=['你','我','他','它'];
// 1.保留前两个元素
arr.length=[2]
// 2.请空元素
arr.length=0
console.log(arr)
</script>
小知识:
1、 数组可以存放任意类型的数据,但是不建议这个存放,一组的数据尽量要统一(可以但没必要)
<script>
let arr=['你',null,true,NaN,undefined,100];
console.log(arr)
</script>
2、 属性和方法: 属性的用法一般结合等于号=或者不用 如:(arr.length=1) 方法的用法是一定要有括号 如:arr.push()