JS基础<三>——循环语句,数组,

129 阅读1分钟

01-流程控制-循环语句

1.1-while循环

    <script>
      打印3次班长爱坤哥
      复制粘贴弊端:(1)代码冗余 (2)维护不便
       console.log( '班长爱坤哥' )
       console.log( '班长爱坤哥' )
       console.log( '班长爱坤哥' )
​
      循环结构:代码重复执行
​
      while循环语法 
            while( 条件 true/false ){
                循环体:需要重复执行的代码
            }
​
        执行规则
            1.判断条件是否成立
                1.1 true : 则执行循环体代码
                1.2 false : 循环结束,执行大括号后面的代码
            2.重复步骤1
​
      1.声明变量记录循环次数(循环变量)
      let num = 1
      2.循环条件
       while (num <= 10) {
       console.log("班长爱坤哥")
      3.循环变量自增
        num++
      }
      console.log("班长完事了")
    </script>

1.2-for循环

    <script>
        for循环: 1.声明循环变量  2.循环条件  3.循环变量自增 写在一个小括号中,代码更加简洁易读
        语法:
            for(语句1;语句2;语句3){
                循环体:需要重复执行的代码
            }
        
        执行规则
            1. 执行语句1(声明循环变量)
            2. 判断语句2结果是否成立(循环条件)
                2.1 true : 执行循环体
                    * 2.1.1 执行语句3(循环变量自增)
                2.2 false: 循环结束,执行大括号后面的代码
            3. 重复步骤2
​
         for(let i = 1; i <= 3;i++){
             console.log('班长爱坤哥')
         }
         console.log('班长完事了')
         
    </script>

1.3-break与continue关键字

    <script> 
      continue : 结束本次循环体,立即进入下一次循环判断
        continue关键字只能用于循环语句
      break:     结束整个循环语句,立即执行大括号后面的代码
        break关键字可以用于 循环语句 + switch-case
​
      模拟吃10个饺子
      for (let i = 1; i <= 10; i++) {
        continue : 吃到第五个饺子,发现虫子。 第五个饺子不吃,但是没吃饱后面饺子继续吃
         if( i === 5 ){
             continue
         }
​
        break : 吃到第五个饺子,吃饱了。 后面的饺子不吃了。
        if (i === 5) {
          break
        }
        document.write(`<p>我正在吃第${i}个饺子</p>`)
      }
    </script>
​

02-循环嵌套

1.1-循环嵌套介绍

    <script>
      
      循环嵌套(双重循环) :  循环里面 嵌套 一个循环
      举例: 打印 45列星星,一次只能打印一个
      ☆ ☆ ☆ ☆ ☆
      ☆ ☆ ☆ ☆ ☆
      ☆ ☆ ☆ ☆ ☆
      ☆ ☆ ☆ ☆ ☆
      
      外层循环:行数
      for (let i = 1; i <= 4; i++) {
        内层循环:列数
        for(let j = 1;j <= 5;j++){
            document.write('☆ ')
        }
        document.write('<br>')
      }
    </script>

03-数组类型

1.1-数组介绍

    <script>
        1.数组是什么? : 是一种复杂数据类型
        2.数组作用? : 可以在变量中 ‘存储多个数据’
        3.数组内存原理? : 数组内存由三个部分组成(数组三要素)
            元素: 数组中的数据
            下标: 元素的位置
            长度: 元素的数量
​
        需求:存储 五个人名字
        弊端:(1)代码冗余 (2)维护不便
         let s1 = '小明'
         let s2 = '小刚'
         let s3 = '小花'
         let s4 = '小美'
         let s5 = '小白'
​
        使用数组: 一个变量存储多个数据
        let array = ['小明','小刚','小花','小美','小白']
​
        console.log( array )
        
    </script>

1.2-数组语法

    <script>
        1.数组声明:  let  数组名 = [元素1,元素2,元素3,.......]
        2.数组取值    数组名[下标]
        3.数组长度    数组名.length
        
        1.声明数组    let 数组名 = [数据1,数据2,数据3,.....]
        let names = ['小明','小刚','小花','小美','小白']
        2.数组取值   数组名[下标]
        console.log( names )//['小明', '小刚', '小花', '小美', '小白']
        console.log( names[0] )//小明
        3.数组长度   数组名.length
        console.log(names.length)//5
    </script>

1.3-数组遍历

    <script>
        1.数组语法
         (1).数组声明:  let  数组名 = [元素1,元素2,元素3,.......]
         (2).数组取值    数组名[下标]
         (3).数组长度    数组名.length
        2.数组遍历: 依次读取数组每一个元素值
            固定格式的for循环:  
                for(let i = 0;i < arr.length ;i++){
                    arr[i]
                }

        let names = ['小明','小刚','小花','小美','小白','小彪']
        遍历数组: for循环
        for(let i = 0;i < names.length;i++ ){
            console.log( names[i] )
        }   
         console.log( names[0] )
         console.log( names[1] )
         console.log( names[2] )
         console.log( names[3] )
         console.log( names[4] )
    </script>

04-数组操作(增删改查)

1.1-查询与修改元素

    <script>
        1.声明数组  let 数组名 = [元素1,元素2,元素3,....]
        2.数组取值(查)    数组名[下标]
        3.数组赋值(改)    数组名[下标] = 值
          
        let arr = [ 20,66,88,50,100 ]
        
        数组取值 
        (1)如果下标存在,则会获取元素值
        (2)如果下标不存在,则会获取undefined
        
        console.log( arr[2] )//88
        console.log( arr[6] )//undefined
​
        数组赋值 
        (1)如果下标存在,则获修改元素值
        (2)如果下标不存在,
        
       arr[0] = 99//修改0下标元素值
       arr[6] = 70//动态新增一个元素
       console.log(arr)
        
    </script>

1-2-新增元素(push与unshift)

    <script>
        数组新增有两个方法
        
        数组名.push(元素)  : 一个或多个元素,添加到末尾
        数组名.unshift(元素)  : 一个或多个元素,添加到末尾
        
        let arr = [20,50,88,60,100]
        1. 添加到末尾
        arr.push(90,200)
        console.log(arr)
        2. 添加到开头
        arr.unshift(5,8)
        console.log(arr)
        
    </script>

1.3-删除元素(pop与shift)

    <script>
        let arr = [10,20,30,40,50]
        
        1.删除最后一个元素  arr.pop()
        arr.pop()
        console.log(arr)
​
        2删除第一个元素  arr.shift()
        arr.shift()
        console.log( arr )
               
    </script>

1.4-删除指定元素

    <script>
        let arr = [10,20,30,40,50]
        
        arr.splice(start,deleteCount)
         第一个值: 起实位置。 从0开始
         第二个值: 要删除的数量
          如果没有指定数量,则会删除从起始位置到后面所有元素
        
        arr.splice(1,2)//表示从下标1开始,往后删除2个元素.把20,30给删除了
        console.log(arr)//[10,40,50]
        
    </script>

05-数组应用

1.1-数组求和

    <script>
       本案例思路在开发中很常见,叫做累加和 : 求一组数据的 总和 
      (1)声明一个变量存储结果
      (2)遍历数组中每一个元素
      (3)累加
      
      let arr = [20, 50, 66, 88, 70]
​
      1.声明空变量存储结果
      let sum = 0
      2.遍历数组
      for (let i = 0; i < arr.length; i++) {
        console.log(arr[i])
        3.累加
        sum += arr[i]
      }
      console.log(sum, sum / arr.length)
    </script>

1.2-求数组最大元素与最小元素

    <script>
        求数组最大值
        1.声明变量默认为第一个元素
        2.遍历数组
        3.依次比较大小,然后赋值
        
        let arr = [20,50,66,88,70]    
​
        1.声明变量默认为第一个元素
        let max = arr[0]
        2.遍历数组
        for(let i = 1;i < arr.length;i++){
            console.log( arr[i] )
        3.比较大小,然后赋值
            if( arr[i] > max){
                max = arr[i]
            } 
        }
        console.log(max)
    </script>

1.3-筛选数组

    <script>
        需求:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组
​ 
        1.找出指定范围符合条件的数
        2.把符合条件的数放入新数组中(新增元素)
​
        let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
        1.声明空数组
        let newArr = []
        2.遍历旧数组,找出符合条件的数
        for(let i = 0;i<arr.length;i++){
            if( arr[i] >= 10 ){
            3.添加到新数组中
            console.log(arr[i])
            newArr.push( arr[i] )
            }   
        }
        console.log( newArr )    
    </script>

1.4-数组去0

    <script>
      需求:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中的 0 去掉后,形成一个不包含 0 的新数组
​
      实际开发场景:去除数组中指定的元素,生成新数组
       (1)微信账单: 收入 + 支出。  需求是只看收入(支出类型去除)
       (2)商品列表 : 京东自营(把非自营商品去除)
​
      let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
      1.声明空数组存储结果
      let newArr = []
      2.遍历数组,找出不为0的元素
      for (let i = 0; i < arr.length; i++) {
        if (arr[i] !== 0) {
          console.log(arr[i])
          3.新增到空数组
          newArr.push(arr[i])
        }
      }
      console.log(newArr)
    </script>