1. for循环
for的好处是把声明起始值、循环条件、变化值写在一起,让人一目了然
for循环和while循环的区别是:
- 当如果明确了循环的次数的时候推荐使用for循环
- 当不明确循环的次数的时候推荐使用while循环
continue和break的区别:
- continue结束本次循环,继续下次循环
- break跳出所在循环
嵌套for循环的应用:
外层循环控制行,内层循环控制列:倒三角星,九九乘法表,冒泡排序
2. 数组
数组array是一种可以按顺序保存数据的数据类型,数组的编号叫索引index或下标,里面的值叫元素element,数组可以储存任意类型的数据。
let arr = []这是声明一个空数组arr[0]这是通过下标取值,取下标为0的值
遍历数组:
用循环把数组中每个元素都服务到,一般会用for循环遍历
语法:
for (let i =0; i < 数组名.length; i++) {
document.write(数组名[i])
}
遍历应用:打印数组,数组求和,找大小等
操作数组:
-
查询数组数据:通过数组下标访问数据
-
重新赋值:数组[下标]=新值
-
数组添加新的数据:
arr.push(新增的内容) :该方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
let arr = ['red', 'green'] //把blue追加到arr的里面 //console.log(arr.push('blue')); 这里会显示 3 let arrLength = arr.push('blue') //注意:这里的返回值是新的数组长度 console.log(arrLength); //这里会显示 3 console.log(arr); //这里才是打印数组,['red','green','blue']arr.unshift(新增内容) :该方法将一个或多个元素添加到数组的开头,并返回该数组的长度
-
删除数组中的数据:
arr.pop( ) 方法从数组中删除最后一个元素,并返回该元素
arr.shift( ) 方法从数组中删除第一个元素,并返回该元素
arr.splice( ) 方法删除指定元素:开发常用,比如抽奖或删除指定商品
-arr.splice(start起始位置,deleteCount删除几个元素)
start:必需,指定修改开始位置,正数是从左开始,负数是倒数右边开始
deleteCount表示要删除的元素个数,可选,如果省略就默认从指定起始位置删除
-
3. 冒泡排序
冒泡排序重复走访要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,一直重复进行到没有需要交换为止。
排序思路:使用双层for循环,外层循环控制轮数,内层循环负责交换数据
- 外层轮数:i=0; i< arr.length-1 i++
- 内层每一轮交换次数:j=0; j < arr.length-i j++(因为通过规律得知需要排序的数组长度减去该轮的轮数等于内层循环的交换次数)
- 声明一个临时变量let temp 用作数据中转站
- 内层数据比对:内层循环体里使用一个if判断来判断左边是否大于右边,true就把左边的值 arr[ j ] 暂时存在temp里,然后把右边的值arr[ j+1 ]给左边,再把temp里的值给右边,这样就左右完成了一次交换。
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);
\