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

news2025/8/6 6:19:59

笔记首发

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

  • 将数字按照原有顺序插入到数组内
        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.coloradmin.cn/o/34634.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

antd——使用a-tree组件实现 检索+自动展开+自定义增删改查功能——技能提升

之前写后台管理系统时&#xff0c;遇到一个下面的需求&#xff0c;下面是最终完成的效果图。 实现的功能有&#xff1a; 1. 下拉 选择不同的类型——就是一个普通的select组件&#xff0c;下面并不做介绍 2. 通过关键字可以进行tree树形结构的筛选&#xff0c;然后将筛选后的…

数据结构学习笔记——查找算法

目录前言一、查找的相关概念&#xff08;一&#xff09;内查找和外查找&#xff08;二&#xff09;静态查找和动态查找&#xff08;三&#xff09;平均查找长度二、线性查找&#xff08;一&#xff09;顺序查找1、查找思想2、算法分析3、有序表的顺序查找&#xff08;二&#x…

gitlab-runner 的安装使用(含 .gitlab-ci.yml 的简单使用)

简介 GitLab Runner 是一个开源项目&#xff0c;用于运行您的作业并将结果发送回 GitLab。它与 GitLab CI 一起使用&#xff0c;GitLab CI 是 GitLab 随附的开源持续集成服务&#xff0c;用于协调作业。 简单理解就是一个服务放在那儿&#xff0c;当你提交代码时&#xff0c;…

[附源码]java毕业设计在线课程网站

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

腾讯安全SOC+能力图谱正式发布,助力政企构建闭环安全运营体系

随着云计算、人工智能、5G等新兴技术的融合发展&#xff0c;数字化转型正成为企业数字经济时代的重要发展路径。然而&#xff0c;数字化转型过程中IT架构的重塑、安全产品体系化能力不足带来的安全运营挑战&#xff0c;使得企业在业务突破上面临安全瓶颈。 面对网络安全事件频…

做一个微信小程序需要多少钱?

做一个微信小程序需要多少钱&#xff1f; 如果是选择套用小程序模板&#xff0c;自建的方式的话&#xff0c;价格是在698-3498元一年的。 如果是代建小程序的话&#xff0c;需要在自建的费用上&#xff0c;再加上1500-12000元的代建费用。 下面主要给大家讲讲698-3498元这个…

Spring依赖注入源码解析(上)

文章目录前言一、Spring中到底有几种依赖注入的方式&#xff1f;1、手动注入1.1、set方法进行注入1.2、通过构造方法进行注入2、自动注入2.1、XML的autowire自动注入2.2、Autowired注解的自动注入二、autowireByName && autowireByType核心源码分析2.1、autowireByName…

最新最全的JavaScript入门视频,包含小程序和uniapp相关的JavaScript知识学习

写在前面 我们学习JavaScript不仅可以用于web网站开发&#xff0c;也可以用于小程序&#xff0c;uniapp项目的开发&#xff0c;所以我们学习JavaScript很重要。 准备工作 我们这里学习JavaScript用的是小程序开发者工具或者uniapp开发者工具&#xff0c;所以需要你先装好这两…

基于Servlet+jsp+mysql开发javaWeb学生管理系统(学生信息、学生选课、学生成绩、学生签到考勤)

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;或者没有积分想获取项目&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录一、开发背景二、 需求分析三、开发环境四、运行效果五、开发流程工程目…

【web前端开发】HTML知识点超详细总结

文章目录什么是网页常用的浏览器及内核VScode和WebStrom使用HTML常用标签文档类型<!DOCTYPE>网页语言lang字符集title标签标题标签段落和换行标签文本格式化标签div和span标签图像标签路径相对路径同一级路径上一级路径:下一级路径绝对路径链接标签超链接标签外部链接:内…

为什么心脏长在左边?

人体各项生命活动的正常维持&#xff0c;都离不开血液循环系统输送营养和代谢废物&#xff0c;而给全身输送血液的动力器官就是心脏。可以说&#xff0c;心脏是人体的发动机。不过&#xff0c;你有没有思考过&#xff0c;为什么心脏会长在我们身体的左边呢&#xff1f; 为了解释…

css ppt操作面板 预览时其中标签定位问题

最近用网页写了一个类似PPT页面板操作功能&#xff0c;就是把文本框和图片放入操作面板后&#xff0c;手动拖动到自定义位置&#xff0c;并可以控制文本框和图片大小&#xff0c;但是在预览时位置怎么都放不对&#xff0c;可能跟我css知识不扎实有关&#xff0c;两天没解决&…

从一道题到贪心入门

今天,我们将从一道题引入贪心算法的认识. 题目 题目描述 又是一年秋季时&#xff0c;陶陶家的苹果树结了 n 个果子。陶陶又跑去摘苹果&#xff0c;这次他有一个 a 公分的椅子。当他手够不着时&#xff0c;他会站到椅子上再试试。 这次与 NOIp2005 普及组第一题不同的是&#x…

搭建ESP8266开发环境

获取工具 安信可一体化开发环境 Source insight (本菜鸟不太喜欢用Eclipse) 安装 安装ESP8266开发环境(Windows) 1)双击运行解压到文件 2)安装方式一:eclipse 双击运行ConfigTool.exe点击 Default 可以检测当前所在路径&#

图神经网络关系抽取论文阅读笔记(三)

1 用于关系提取的注意引导图卷积网络&#xff08;Attention Guided Graph Convolutional Networks for Relation Extraction&#xff0c;2020&#xff09; 论文&#xff1a;Attention Guided Graph Convolutional Networks for Relation Extraction&#xff0c;2020 1.1 引言 依…

笔试强训第一天

选择题&#xff1a; 题目1&#xff1a; 我们对这道题目进行分析&#xff1a;第一个打印的是computer没有什么问题&#xff0c;但是第二个%5.3s我们需要进行分析&#xff1a; %m.ns m表示输出字符串的宽度&#xff0c;这里输出字符串的宽度为5 n表示左起截取目标字符串的n个…

m基于OFDM系统,对比SC算法,Minn算法,PARK算法同步性能matlab仿真分析

目录 1.算法描述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法描述 OFDM系统下对比SC算法&#xff0c;Minn算法&#xff0c;PARK算法同步性能matlab仿真分析。OFDM系统中的定时估计和频率频率算法——时频联合估计的SC算法&#xff0c;由Schmidl和Cox提出…

Python入门自学进阶-Web框架——27、DjangoAdmin项目应用-数据记录操作2

四、对数据记录删除 1、首先是配置整个流程框架&#xff0c;使整个流程运转顺利&#xff1a; 路由项添加&#xff1a;path(<str:app_name>/<str:table_name>/<int:id_num>/delete/,views.rec_obj_delete,namerec_delete), 主要是匹配记录的id和delete字符…

【LeetCode每日一题:809.情感丰富的文字~~~双指针+计数器】

题目描述 有时候人们会用重复写一些字母来表示额外的感受&#xff0c;比如 “hello” -> “heeellooo”, “hi” -> “hiii”。我们将相邻字母都相同的一串字符定义为相同字母组&#xff0c;例如&#xff1a;“h”, “eee”, “ll”, “ooo”。 对于一个给定的字符串 S…

MyBatis核心对象简介说明

转自: MyBatis核心对象简介说明 MyBatis 有三个基本要素&#xff1a; 核心接口和类MyBatis核心配置文件&#xff08;mybatis-config.xml&#xff09;SQL映射文件&#xff08;mapper.xml&#xff09;下面首先介绍 MyBatis 的核心接口和类&#xff0c;如下图 每个 MyBatis 应…