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

news/2024/9/28 11:12:18 标签: 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)

http://www.niftyadmin.cn/n/11647.html

相关文章

程序员注意!35岁前,别靠死工资过日子

《2022程序员职场洞察报告》显示&#xff0c;六成受访者的职级和薪酬原地踏步&#xff0c;仅38.3%程序员群体的工作发生过变动&#xff0c;升职加薪、搞副业、自由工作等。 近两年&#xff0c;伴随疫情及行业发展的不确定性&#xff0c;企业招聘以及人才求职双方都变得谨慎。越…

echarts——实现3D地图+3D柱状图 效果——粗糙代码记录——技能提升

最近看到同事在弄下面的这个图&#xff0c;这个图是从网上看到的&#xff0c;是某个网站的收费项目&#xff1a; 收费模板&#xff1a;&#xffe5;29.9元购买&#xff0c;且必须是高级版尊享版才能够购买这个。。。 死贵&#xff01;&#xff01;&#xff01; 所以&#xf…

中国互联网众筹行业

近些年&#xff0c;中国互联网发展迅速&#xff0c;众筹这种起源于美国的新型互联网金融模式更是一直处于风口浪尖。在“大众创业、万众创新”的背景下&#xff0c;这种低门槛的融资模式也深受欢迎&#xff0c;加上阿里、京东、苏宁三大电商的巨头的相继入场&#xff0c;更令这…

李宏毅机器学习作业10——Adversarial Attack

目录 目标和方法 评价方法 导包 Global Settings Data transform Dataset 代理网络 评估模型在非攻击性图像上的表现 Attack Algorithm FGSM I-FGSM MI-FGSM Diverse Input (DIM) 攻击函数 Attack Ensemble Attack 集成模型函数 构建集成模型 进行攻击 FG…

MySQL批量入库的几种方式详解

MySQL批量入库的几种方式详解1. MySQL批量入库概述2. Hutool封装jdbc方式3. Jdbc直接或批量执行方式4. MyBatis批量入库方式5. MySQL批量入库总结1. MySQL批量入库概述 最近压测一款mysql持久化工具&#xff0c;目前市面上mysql批量入库方式有很多&#xff0c;这里分别对常用的…

SQL Server如何获取GUID号

select newid() guid;--获取GUID select replace(newid(),-,) guid;--获取GUID 去掉- sqlserver newid()函数 NEWID (Transact-SQL) - SQL Server | Microsoft LearnNEWID (Transact-SQL)https://learn.microsoft.com/en-us/sql/t-sql/functions/newid-transact-sql?redirect…

国产化Kettle、JDK、MySQL下载安装操作步骤

一、Kettle下载安装 &#xff08;一&#xff09;、kettle的下载 1、登录https://sourceforge.net/projects/pentaho/ 2、点击“Files”&#xff0c;进入Home / Data Integration 目录&#xff0c;下载需要的版本&#xff0c;以6.1为例。 3、点击“pdi-ce-6.1.0.1-196.zip”…

南卡和FIIL 哪个更好用?南卡和FIIL CC nano蓝牙耳机对比测评

作为一个狂热的蓝牙爱好者&#xff0c;我也用了不少蓝牙耳机了&#xff0c;真的是对蓝牙耳机爱不释手。自从蓝牙耳机出现以来&#xff0c;我们都看到了它的迅速发展&#xff0c;尤其是这两年&#xff0c;蓝牙耳机越来越受欢迎&#xff0c;已经取代了传统的有线耳机&#xff0c;…