JavaScript基础Day3

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
实际开发中,for用的要比while更多。
ex:

<script>
        // for (起始条件;退出条件;变化量) {
        //  循环语句
        // }
            for (let i = 1; i <= 10; i++) {
                document.write(`月薪过万 <br>`)
            }

    </script>

循环练习:
在这里插入图片描述
练习1:

for (let i = 1; i <= 100; i++) {
            document.write(`${i}岁 <br>`)
        }

练习2:

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

练习3:

for (let i = 1; i<= 5; i++) {
            document.write(``)
        }

练习4:
以前是这么写的:
在这里插入图片描述
但是如果用上for循环就会简易很多
代码:

let arr = ['马超', '赵云', '张飞', '关羽', '黄忠']
        for (let i = 0; i <= 4; i++) {
            document.write(`名字是:${arr[i]} <br>`)
        }

循环还有一个叫法,遍历。
循环最大的价值就是遍历数组。

arr.length 数组的长度,通过它可以告诉我们数组里有几个元素。将它放到代码里,帮助自动检测元素数量。

let arr = ['马超', '赵云', '张飞', '关羽', '黄忠']
        for (let i = 0; i < arr.length; i++) {
            document.write(`名字是:${arr[i]} <br>`)
        }
        document.write(arr.length)

循环小结:
在这里插入图片描述
for循环的退出循环:
在这里插入图片描述
在这里插入图片描述

continue和break在退出循环中的不同:

<script>
        for (let i = 1; i < 6; i++) {
            if (i === 2) {
                // continue // 退出本次循环,继续后面的循环,最后输出1345
                break  // 结束循环 退出整个循环 最后只输出1
            }
            document.write(i)
        }
    </script>

循环嵌套:
for循环嵌套:
在这里插入图片描述
在这里插入图片描述
for循环嵌套for循环,外部循环一次,里面循环执行全部,所以最后打印25个星

记忆单词案例:(每天背五个单词,一共三天)

<script>
        /* 记忆单词案例
        分析
        1.外面的循环 记录第n天 */
        for (let i = 1; i < 4; i++) {
            document.write(`${i}天 <br>`)
            // 2. 里层的循环记录 几个单词
            for (let j =1; j < 6; j++) {
                document.write(`记住第${j}个单词 <br>`)
            }
        }
    </script>

在这里插入图片描述
for循环嵌套练习:
练习1:
在这里插入图片描述
代码:

<script>
        // 打印5行5列的星星
        for (let i = 1; i < 6; i++ ) {
            
            for (let j = 1; j < 6; j++) {
                document.write(``)
            }
            document.write(`<br>`)
        }
    </script>

练习2:(打印倒三角形星星)
在这里插入图片描述
代码:

// 外层打印几行
        for (let i = 1; i <= 5; i++ ) {
            // 里层打印几个星星
            for (let j = 1; j <= i; j++) {
                document.write(``)
            }
            document.write(`<br>`)
        }

练习3:
在这里插入图片描述

代码:

<style>
        div {
            display: inline-block;
            height: 25px;
            line-height: 25px;
            margin: 5px;
            background-color: pink;
            padding: 0 10px;
            border: 1px solid hotpink;
            color: deeppink;
            border-radius: 5px;
            box-shadow: 2px 2px 2px rgba(0, 0, 0, .2);
            text-align: center;
        }
    </style>
</head>
<body>
    <script>
        let x = `*`
        for (let i = 1; i <= 9; i++ ) {
            for (let j = 1; j <= i; j++) {
                let re = j * i
                document.write(`

                <div>${j} × ${i} = ${re} </div>

                `)
            }
            document.write(`<br>`)
        }
    </script>

效果:
在这里插入图片描述
左边粉色的是效果图。

数组:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<script>
        let arr = [2,6,1,7,4]
        let sum = 0
        let ave
        for (let i = 0; i < arr.length; i++) {
            sum += arr[i]
        }
        ave = sum / arr.length
        document.write(sum)
        document.write(`<br>`)
        document.write(ave)
    </script>

在这里插入图片描述

<script>
        let arr = [2,6,1,77,52,25,7]
        let max = arr[0]
        for (let i = 1; i < arr.length ; i++) {
            if (max < arr[i]) {
                max = arr[i]
            }
        }
        document.write(max)
    </script>

操作数组:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
案例:
在这里插入图片描述

<script>
        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] >= 10) {
                // 满足条件的,依次追加给心的数组
                newArr.push(arr[i])
            }
        }
        document.write(newArr)
    </script>

案例:
在这里插入图片描述

<script>
        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])
            }
        }
        document.write(newArr)
    </script>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除的使用场景:
在这里插入图片描述
在这里插入图片描述
数组案例:(冒泡排序)

在这里插入图片描述

<script>
        let arr = [2, 6, 4, 3, 5, 1]
        // 1. 外层循环控制  趟数   循环 4次   arr.length - 1
        for (let i = 0; i < arr.length - 1; i++) {
            // 2. 里层的循环 控制 一趟交换几次  arr.length - i - 1 次序
            for (let j = 0; j < arr.length - i - 1; j++) {
                // 交换两个变量
                // arr[j]   arr[j + 1]
                if (arr[j] > arr[j + 1]) {
                    let temp = arr[j]
                    arr[j] = arr[j + 1]
                    arr[j + 1] = temp
                }
            }
        }
        console.log(arr)

        // 复习变量
        // let num1 = 10
        // let num2 = 20
        // let temp = num1
        // num1 = num2
        // num2 = temp


    </script>

综合案例-柱状图

在这里插入图片描述
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .box {
            display: flex;
            width: 700px;
            height: 300px;
            border-left: 1px solid pink;
            border-bottom: 1px solid pink;
            margin: 50px auto;
            justify-content: space-around;
            align-items: flex-end;
            text-align: center;
        }

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

        .box div span {

            margin-top: -20px;
        }

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

<body>

    <!-- <div style="height: 123px;">
        <span>123</span>
        <h4>1季度</h4>
    </div>
    <div style="height: 156px;">
        <span>156</span>
        <h4>2季度</h4>
    </div>
    <div style="height: 120px;">
        <span>120</span>
        <h4>3季度</h4>
    </div>
    <div style="height: 210px;">
        <span>210</span>
        <h4>4季度</h4>
    </div> -->


    <script>
        // 1. 利用循环弹出四次输入框, 会得到4个数据,放到数组里面
        let arr = []
        for (let i = 1; i <= 4; i++) {
            // prompt(`请输入第 ${i} 季度的数据`)  ===  123
            arr.push(prompt(`请输入第 ${i} 季度的数据`))
        }
        // console.log(arr)
        // 注意我们渲染循环的是柱子 
        document.write(`<div class="box">`)
        // 循环4个柱子
        for (let i = 0; i < arr.length; i++) {
            document.write(`
                 <div style="height: ${arr[i]}px;">
                     <span>${arr[i]}</span>
                    <h4>第${i + 1}季度</h4>
                </div>
            `)
        }
        document.write(`</div>`)
    </script>



</body>

</html>

课后练习:

<script>
        // 1. 练习1: 使用for循环 - 求出数组元素的和 [5, 8, 9, 2, 1, 5]
        let arr = [5, 8, 9, 2, 1, 5]
        let sum = 0
        for (let i = 0;i < arr.length;i++) {
            sum += arr[i]
        }
        document.write(sum)


        // 2. 练习2: 使用for循环 - 求出数组里大于5的和 [4, 9, 5, 20, 3, 11]
        let arr = [4,9,5,20,3,11]
        let sum = 0
        for (let i = 0; i < arr.length;i++) {
            if (arr[i] > 5) {
                sum += arr[i]
            }
        }
        document.write(sum)


        //  练习3: 使用for循环 - 求出班级里同学们平均年龄[15, 19, 21, 33, 18, 24]
        let arr = [15,19,21,33,18,24]
        let pj
        let sum = 0
        for (let i = 0; i < arr.length;i++) {
                sum += arr[i]
        }
        pj = sum / arr.length
        document.write(pj)

        // 练习4: 打印数组里所有的奇数  [5, 2, 8, 10, 3, 7] 
        let arr = [5,2,8,10,3,7]
        for (let i = 0;i < arr.length;i++) {
            if (arr[i] % 2 !== 0) {
                document.write(`${arr[i]} <br>`)
            }
        }

        // 练习5: 计算[2, 6, 18, 15, 40] 中能被3整除的偶数的和
        let arr = [2,6,18,15,40]
        let sum = 0
        for (let i = 0;i < arr.length;i++) {
            if (arr[i] % 3 === 0 && arr[i] % 2 === 0) {
                sum += arr[i]
            }
        }
        document.write(sum)

        // 练习6: 计算[2, 6, 18, 15, 40] 中能被3整除的偶数的个数
        let arr = [2,6,18,15,40]
        let j = 0
        for (let i = 0;i < arr.length;i++) {
            if (arr[i] % 3 === 0 && arr[i] % 2 === 0) {
                j++
            }
        }
        document.write(j)

        // 练习7:给一个数字数组,该数组中有很多数字0,将不为0的数据存入到一个新的数组中
        let arr = [2,6,0,18,21,15,0,40,0]
        let newArr = []
        for (let i = 0;i < arr.length;i++) {
            if (arr[i] !== 0) {
                newArr.push(arr[i])
            }
        }
        document.write(newArr)
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值