for循环和数组方法

191 阅读1分钟

for循环和数组

for循环语法

for (起始条件; 循环条件; 变化量) { 循环体}

案例

  • // 1. 利用for循环输出1~100岁
        for (let i = 1; i <= 100; i++) {
            console.log(i);
        }
    
        // 2. 求1-100之间所有的偶数和
        let sum = 0
        for (let i = 1; i <= 100; i++) {
            if (i % 2 === 0) {
                sum += i
            }
        }
        console.log(sum);
    
    // 3. 页面中打印4个小星星❤
    let stars = ''
    for (let i = 1; i <= 4; i++) {
        stars = '❤'
        document.write(stars)
    }
    ​
    // 4. 请将 数组['马超', '赵云', '张飞', '关羽', '黄忠']依次打印出来
    let people = ['马超', '赵云', '张飞', '关羽', '黄忠']
    for (let i = 0; i < people.length; i++) {
        console.log(people[i]);
    }
    

for循环和while循环有什么区别呢

  • 当如果明确了循环的次数的时候推荐使用for循环
  • 当不明确循环的次数的时候推荐使用while循环

循环退出

  • continue:结束本次循环,继续下次循环
  • break:跳出所在的循环
  • 案例
  • // 假设你在餐馆吃饭  
       let arr = ['虾饺', '蒸排骨', '虫子', '红米肠', '糯米鸡']
       for (let i = 0; i < arr.length; i++) {
           if (arr[i] == '虫子') {
               console.log('口区,吃到了虫子耶,我吃不下了');
               // 退出循环!
               break
           }
           console.log('我成功的吃了' + arr[i]);
       }
    

循环嵌套

Snipaste_2022-01-11_10-13-54.png

  • 案例

  • // 循环嵌套
           for (let i = 1; i <= 3; i++) {
               document.write(`第${i}天<br>`)
               for (let j = 1; j <= 5; j++) {
                   document.write(`记了${j}个单词<br>`)
               }
           }
    
    • 99乘法表
    • // 1. 打印几行? 9行
      for (let i = 1; i <= 9; i++) {
          for (let j = 1; j <= i; j++) {
              document.write(`<div>${i} x ${j} = ${i*j}</div>`)
          }
          document.write(`<br>`)
      }
      // 2. 每行打印几个div? 当前行数个div// 外层循环 1 - 9
      

数组

let 数组名=[ ]

数组求和/平均值

  • // 数组求和 和 平均值 案例

    let arr = [2, 6, 1, 7, 4]
            let sum = 0
            let avr = 0
            for (let i = 0; i < arr.length; i++) {
                sum += arr[i]
                avr = sum / arr.length
            }
            console.log(sum);
            console.log(avr);
    

数组求最大值/最小值(改成<)

  • let arr = [100, 1000, 1, 77, 52, 25, 7]
            let max = arr[0]
            for (let i = 1; i < arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i]
                }
            }
            console.log(max);
    

数组添加数据

  • 数组.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度 (重点)
  • arr.unshift(新增的内容) 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度

遍历数组

  • let arr = [2, 6, 1, 7, 4]

        for (let i = 0; i < arr.length; i++) {
           console.log(arr[i]);
        }
    

数组删除元素

  • 数组. pop() 方法从数组中删除最后一个元素,并返回该元素的值
  • 数组. shift() 方法从数组中删除第一个元素,并返回该元素的值
  • 数组. splice(起始位置,删几个元素) 方法 删除指定元素

数组增加元素

  • arr.unshift(新增的内容)
  • 数组.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度

冒泡排序

let arr = [5, 4, 3, 2, 1]

        for (let i = 1; i <= arr.length - 1; i++) {
            for (let j = 1; j <= arr.length - i; j++) {
                if (arr[j - 1] > arr[j]) {
                    let temp = arr[j - 1]
                    arr[j - 1] = arr[j]
                    arr[j] = temp
                }
            }
​
        }
        console.log(arr);

内层循环?次 + 当前的轮次 = 数组的长度

内层循环?次 = 数组的长度 - 当前的轮次

内层循环?次 = arr.length - i