【学习笔记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. 将每一个值放大 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)
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);

在这里插入图片描述

三、生成一个数组,数组内存储的数据是从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)

2、方法二

      var arr = []
        for (var i = 2; i <= 60; i++) {
            if (i % 2 == 0) {
                arr[arr.length] = i
            }
        }
        console.log(arr)

3、方法三

        var arr = [];
        for (var i = 2; i <= 60; i++){
            if( i % 2 === 0){
                arr.push(i)
            }
            i++;
        }
        console.log(arr);

四、利用第三题生成的数组, 每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);

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)

在这里插入图片描述

五、数组的塌陷

  • 需求: 将数组清空(将数组每一项删除)
        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)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值