循环与数组

148 阅读1分钟

JavaScript

一. for循环

image.png

1> 利用for循环输出1-100岁

        for(let i=1;i<=100;i++){
            document.write(i)
            document.write('\n')
        }

2> 求1-100之间所有偶数的和

        let sum=0
        for(let i=1;i<=100;i++){
            if(i%2===0){
                sum+=i
            }
        }
        document.write(sum)

3> 页面中打印4个小星星❤

        let star = ''
        for (let i = 1; i <= 4; i++) {
            star += '*'
        }
        document.write(star)

4> 请将 数组['马超', '赵云', '张飞', '关羽', '黄忠']依次打印出来

        let arr = ['马超', '赵云', '张飞', '关羽', '黄忠']
        // document.write([arr])
        for (let i = 0; i < arr.length; i++) {
            document.write(arr[i])
        }

二, 退出循环

image.png

例如:

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

三, 循环嵌套

image.png

        1. 循环嵌套记单词
         for (let i = 1; i <= 3; i++) {
            document.write(`今天第${i}天<br>`)
            for (let j = 1; j <= 5; j++) {
                document.write(`记住了今天第${j}个单词<br>`)
            }
        }

四,数组的基本使用

image.png

       1. 数组遍历
       let arr=['李狗蛋','赵铁柱','张翠花']
       for (let i = 0; i < arr.length; i++) {
            console.log(i,arr[i]);
        }
        2. 数组求和,平均值
        let arr = [2, 6, 1, 7, 4]
        let sum = 0
        for (let i = 0; i < arr.length; i++) {
            console.log(arr[i]);
            sum += arr[i]
        }
        console.log(`'和为'${sum} ,'平均值为'${sum / arr.length}`);
        3. 求数组的最大值
         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){
                document.write(`${arr[i]}`)
            }
        } 
       4.求数组最大值三元表达式
        let arr = [11100, 1000, 1, 77, 522222, 25, 7]
        let max = min = arr[0]
        for (let i = 1; i < arr.length; i++) {
            max = arr[i] > max ? arr[i] : max
            min = arr[i] < min ? arr[i] : min
        }
        document.write(min)
        document.write(`<br>`)
        document.write(max)
  1. 操作数组

image.png

        1. 数组增加元素push
        let arr = ['red', 'green']
        arr.push ('orange', 'yellow')
        console.log(arr);
        2. 数组增加元素unshift
        let arr = ['red', 'green']
        arr.unshift = ('orange', 'pink')
        let res = arr.unshift('orange', 'pink')
        console.log(arr);
        console.log(res);   //打印数组长度4
        3. 筛选数组案例
        // 将数组  [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组
        let newarr=[]
        let arr=[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
        for (let i = 0; i < arr.length; i++) {
            if(arr[i]>=10){
                newarr.push(arr[i])
            }
        }
        console.log(newarr);
        4. 筛选数组去0案例
         // 将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中的 0 去掉后,形成一个不包含 0 的新数组

        let arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7]
        let newarr = []
        for (let i = 0; i < arr.length; i++) {
            if (arr[i] !== 0) {
                newarr.push(arr[i])
            }
        }
        console.log(newarr);
  1. 删除数组元素
        arr.pop() 从数组中删除最后一个元素,并返回删除元素的值
        let arr = ['李狗蛋', '张翠花', '赵铁柱']
        arr.pop()
        console.log(arr);

        arr.shift() 从数组中删除第一个元素,并返回删除元素的值
        let arr = ['李狗蛋', '张翠花', '赵铁柱']
        arr.shift()
        console.log(arr.shift());      返回删除的元素
        console.log(arr);

        arr.splice(起始索引, 删除几个元素)  删除几个元素的值如果不写则代表从起始位置删到最后
        并返回删除的数组
        let arr = ['李狗蛋', '张翠花', '赵铁柱', '貂蝉', '西施', '王昭君', '杨玉环']
        arr.splice(0,2)
        console.log(arr.splice(0,2));     返回删除的元素
        console.log(arr);
  1. 冒泡序列
        let arr = [5, 4, 3, 2, 1]
        for (let i = 1; i <= arr.length - 1; i++) {
            document.write(`第${i}次循环******<br>`)
            for (let j = 1; j <= arr.length - i; j++) {
                document.write(`第${j}次交换<br>`)
                if (arr[j - 1] > arr[j]) {
                    let temp = arr[j - 1]
                    arr[j - 1] = arr[i]
                    arr[i] = temp
                }
            }
        } console.log(arr);
  1. 数据生成柱状图
          //css样式
          <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box {
            position: relative;
            display: flex;
            width: 700px;
            height: 300px;
            border-left: 5px solid #6cf;
            border-bottom: 5px solid #6cf;
            margin: 200px auto;
            justify-content: space-around;
            align-items: flex-end;
            text-align: center;
        }

        .box::before {
            content: "";
            position: absolute;
            left: -13px;
            top: -25px;
            border: 10px solid transparent;
            border-bottom: 20px solid #6cf;
        }

        .box::after {
            content: "";
            position: absolute;
            right: -23px;
            bottom: -12px;
            border: 10px solid transparent;
            border-left: 20px solid #6cf;
        }

        .box>div {
            display: flex;
            width: 50px;
            background-color: #6cf;
            flex-direction: column;
            justify-content: space-between;
        }

        .box div span {
            margin-top: -30px;
        }

        .box div h4 {
            margin-bottom: -35px;
            width: 70px;
            margin-left: -10px;
        }
    </style>




         let data = []
        for (let i = 1; i <= 4; i++) {
            data.push(+prompt(`请输入第${i}季度的数据`))
        }

        document.write(`<div class="box">`)

        for (let i = 0; i < data.length; i++) {
            document.write(`
                <div style="height: ${data[i]}px;">
                <span>${data[i]}</span>
                <h4>第${i+1}季度</h4>
        </div>`)
        }