目录
一、循环结构
反复执行相同或相似的操作,几乎是一瞬间就完成了很多次
1、循环三要素
①循环条件:开始、结束、重复执行的次数
②循环体:循环操作的内容
③循环变量:创建,并且要让它不断的改变,往往向着不满足循环条件在变化
2、while循环
var 循环变量 = ?;
while(循环条件){
循环体;
循环变量的变化;
}
①原理:先判断循环条件,如果条件为真,则执行一次循环体中的语句,然后再一次判断循环条件,如果为真则在执行一次,直到循环条件为假才会退出循环。
②强调:循环是一次一次执行的,只不过速度很快,而且循环没有结束之前会卡住后续代码。
③死循环:停不下来的循环,多半用于不确定循环次数的时候。
while(true){
循环体;
}
④循环流程控制语句:死循环多半需要搭配上一个退出循环语句break。
3、for循环
for(var 循环变量 = ; 循环条件;循环变量的变化){
循环体;
}
特殊:
①死循环
for(;;){循环体}
②创建循环变量部分也可以隔开创建多个变量。
二、数组
希望一个变量可以保存多个数据。
数组中的每个元素都有一个唯一的位置序号,称之为下标,用来表示数组中的每一个元素,最大长度减1结束。
1、创建数组
①直接量方式
var arr = []; //空数组
var arr = [元素1,元素2,...]
②构造函数方式
var arr = new Array(); //空数组
var arr = new Array(元素1,元素2,...)
2、访问数组中的元素
数组名[下标]
3、添加/修改数组中的元素
数组名[下标] = 新元素;
特殊:
①下标处如果没有数据则为添加。
②下标处如果有数据则为替换。
③如果下标越界,会导致数组变为一个稀疏数组。
4、数组具有3大不限制
①不限制长度
②不限制类型
③不限制下标越界(获取时,下标越界,返回结果是一个undefined;添加时会导致数组变成一个稀疏数组)
5、数组唯一的属性-length
数组名.length
有了这个属性,我们就可以实现数组的三个固定套路:
①永远希望想末尾添加元素
arr[arr.length] = 新值;
②获取倒数第几个
arr[arr.length-n];
③缩容:删除数组的倒数几个
arr.length -= n;
6、遍历数组
把数组中的每一个元素都取出来执行相同或者相似的操作
for(var i = 0;i<数组名.length;i++){
数组名[i]; //当前次拿到的数据
}
小知识
随机一个整数公式
parseInt.(Math.random()*(max-min+1)+min);
今日难点(去重)
思路:重复的元素被后一个元素覆盖住。
for(var i = 0;i<arr.length;i++){
for(var j = i+1;j<arr.length;j++){
if(arr[i] == arr[j]){
for(var k = j;k<arr.length;k++){
arr[k] = arr[k+1];
}
j--; //会跳过覆盖掉前一个元素的值,填补漏洞
arr.length--;
}
}
}