• 【学习笔记22】JavaScript数组的练习题


    笔记首发

    一、已知一个排序好的数组

    • 将数字按照原有顺序插入到数组内
            var arr = [10, 20, 30, 40, 50];
            var n = 11;
            
            // 1. 将n插入数组中
            arr.push(n);
            // 2. 冒泡排序
            for (var k = 0; k < arr.length - 1; k++) {
                for (var i = 0; i < arr.length - 1 - k; i++) {
                    if (arr[i] > arr[i + 1]) {
                        var temp = arr[i];
                        arr[i] = arr[i + 1];
                        arr[i + 1] = temp;
                    }
                }
            }
            console.log('冒泡排序结束后的数组: ', arr);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    二、封装函数, 把数组进行放大十倍的操作

    (一)案例分析

    1. 写个函数
    2. 先拿到数组的每一个值
    3. 将每一个值放大 10 倍

    (二)代码实现

    1、方法一
            var arr = [100, 200, 300]function fn(arr) {
                for (var i = 0; i < arr.length; i++) {
                    // console.log(arr[i])
                    // arr[i] = arr[i] * 10
                    arr[i] *= 10
                }
            }
            fn(arr)
            console.log(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    2、方法二
            var arr = [100, 200, 300];function map(arr) {
                var res = []
                for (var i = 0; i < arr.length; i++) {
                    // 末位新增:数组.push( 数据1 , 数据2 ... );
                    res.push(arr[i] * 10)
                }
                return res;
            }
            var res = map(arr);
            console.log(res);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    在这里插入图片描述

    三、生成一个数组,数组内存储的数据是从2开始的所有偶数, 要求数组的长度为 30

    (一)案例分析

    1. 先创建一个长度为 30的数组
    2. 给数组内部每一个位置的成员赋值(赋值要求从2开始的偶数)

    (二)代码实现

    1、方法一
         var arr = new Array(30) // 创建一个长度为 30 的空数组for (var i = 2; i < arr.length; i++) {
                // console.log(i)// 任何数 * 2 == 偶数
                arr[i] = (i + 1) * 2
            }
            console.log(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    2、方法二

          var arr = []
            for (var i = 2; i <= 60; i++) {
                if (i % 2 == 0) {
                    arr[arr.length] = i
                }
            }
            console.log(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    3、方法三

            var arr = [];
            for (var i = 2; i <= 60; i++){
                if( i % 2 === 0){
                    arr.push(i)
                }
                i++;
            }
            console.log(arr);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    四、利用第三题生成的数组, 每5个数字求一个平均值, 放在新数组内,

    • 例子: [2, 4, 6, 8, 10, …, 60] —> [6, 16, 26, 36, 46, 56]

    1、分析

    1. 拿到数组的每一个值
    2. 写一个变量作为累加器, 每次去和数组的值相加
    3. 写一个变量作为计数器, 计算是否累加了 5 次
    4. 当累加了5次时,累加器的数字计算平均值, 计算完成 插入到数组(需要有一个新数组0),需要将累加器清零计数器清零

    2、方法一

            var newArr = [];
            var sum = 0;
            for (var j = 0; j < arr.length; j++) {
                // 把数组中的所有数字累加
                // console.log(j);
                sum += arr[j];// 判断5个数的时候 计算平均值
                if ((j + 1) % 5 == 0) {
                    newArr.push(sum / 5);
                    sum = 0    //计算平均值结束将sum清0
                }
            }
            console.log(newArr);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3、方法二

            var sum = 0          // 定义累加器
            var count = 0        // 定义计数器
            var newArr = []      // 定义空数组 存储平均值for (var k = 0; k < arr.length; k++) {  // 拿到数组所有的下标
                // sum = sum + arr[k]
                sum += arr[k]               // 每次累加 数组的值
                count++                     // 计数器, 计算当前累加了几轮
                if (count == 5) {           // 判断 累加了 5 次的时候
                    newArr.push(sum / 5)    // 计算平均值, 并且插入到数组
                    sum = 0     // 清零
                    count = 0   // 清零
                }
            }
            console.log(newArr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

    五、数组的塌陷

    • 需求: 将数组清空(将数组每一项删除)
            var arr = [0, 1, 2, 3, 4, 5]
    
            for (var i = 0; i < arr.length; i++) {
                arr.splice(i, 1)    
                i--
            }
            console.log(arr);
    
            for (var i = arr.length - 1; i >= 0; i--) {
                arr.splice(i, 1)
            }
            console.log(arr)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
  • 相关阅读:
    堆优化迪氏最短单源路径原理及C++实现
    深入底层学git:目录中包含的秘密
    Canvas绘图
    位、比特、字节、字、帧等概念关系的理解
    Vue:(五)事件初探
    给新入坑的小伙伴们的郑氏Java上路指南
    Spark案例实际操作
    web测试和app测试的区别?
    【编程题】【Scratch三级】2021.09 计算平均分
    17 wordcloud库的使用
  • 原文地址:https://blog.csdn.net/m0_58190023/article/details/128036812