老己的JavaScript基础笔记3

24 阅读4分钟

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]