JS函数练习题

练习一:综合成绩统计与评级系统

编写一个名为 analyzeGrades 的函数,该函数接收一个包含若干学生成绩(0-100之间的数字)的数组作为参数。请完成以下功能:

数据清洗:过滤掉数组中无效的数据(非数字类型、小于0或大于100的数值),将有效成绩存入一个新数组。
基础统计:计算有效成绩的总分、平均分、最高分和最低分。
等级判定:遍历有效成绩数组,根据分数段判断等级(90-100为“优”,80-89为“良”,60-79为“中”,60以下为“差”),并统计各等级的人数。
结果返回:返回一个对象,包含有效成绩数组、总分、平均分、最高分、最低分以及等级统计对象。

代码如下:

function analyzeGrades(grades){ let validGrades=[] for(let score of grades){ if( typeof score==='number' && !isNaN(score) && score>=0 && score<=100){ validGrades.push(score) } } let you_count=0 let liang_count=0 let cha_count=0 let zhong_count=0 let sum=0 let avg=0 let max=0 let min=0 if(validGrades.length>0){ max=validGrades[0] min=validGrades[0] for(let i=0;i<validGrades.length;i++){ let currentscore=validGrades[i] sum+=currentscore if(currentscore<min){ min=currentscore } if(currentscore>max){ max=currentscore } if(currentscore>=90 && currentscore<=100){ you_count++ }else if(currentscore>=80 && currentscore<=89){ liang_count++ }else if(currentscore>=60 && currentscore<=79){ zhong_count++ }else{ cha_count++ } } avg = sum / validGrades.length } return{ validGrades:validGrades, sum:sum, max:max, min:min, you_count:you_count, liang_count:liang_count, zhong_count:zhong_count, cha_count:cha_count, avg:avg } } testScores=[23,54,75,89,95,'abc',0,100,-20] let result =analyzeGrades(testScores) console.log(`总分:${result.sum}`) console.log(`平均分:${result.avg}`) console.log(`最大值:${result.max}`) console.log(`最小值:${result.min}`) console.log(`优:${result.you_count}`) console.log(`良:${result.liang_count}`) console.log(`中:${result.zhong_count}`) console.log(`差:${result.cha_count}`)

结果展示:

练习二:寻找“完数”
题目描述:
一个数如果恰好等于它的所有真因子(即除了自身以外的约数)之和,这个数就被称为“完数”。例如:6 = 1 + 2 + 3,所以6是完数。
请编写一个函数 findPerfectNumbers(start, end),找出并返回 start 到 end 范围内(包含两头)所有的完数组成的数组。

要求:

函数接收两个数字参数 start 和 end。
使用嵌套循环:外层循环遍历范围内的每一个数字,内层循环寻找该数字的因子。
如果该数是完数,将其存入结果数组。
返回该数组。

代码如下:

function findPerfectNumbers(start,end){ let perfectNums=[] for(let num=start;num<=end;num++){ if(num<2){ continue } let sum=0 for(let i=1;i<num;i++){ if(num%i===0){ sum+=i } if(sum===num){ perfectNums.push(num) } } return(perfectNums) } let testNums=findPerfectNumbers(1,100) console.log(testNums)

结果展示:

练习三:数组合并与去重
题目描述:
编写一个函数 mergeArrays(arr1, arr2),将两个数组合并成一个新的数组,并去除其中重复的数字(如果两个数组中有相同的数字,新数组中只保留一个)。

要求:

函数接收两个数组参数 arr1 和 arr2。
创建一个空数组 result 用于存放结果。
先将 arr1 中的所有元素添加到 result 中。
再遍历 arr2,对于 arr2 中的每一个元素,检查它在 arr1 或 result 中是否已经存在。
如果不存在,才将其添加到 result 中。
返回 result。
示例:
输入:mergeArrays([1, 2, 3], [2, 3, 4, 5])
输出:[1, 2, 3, 4, 5]

代码如下:

function mergeArrays(arr1,arr2){ let result=[] for(let i=0;i<arr1.length;i++){ result.push(arr1[i]) } for(let j=0;j<arr2.length;j++){ let isExist=false for(let k=0;k<result.length;k++){ if(arr2[j]===result[k]){ isExist=true break } } if(!isExist){ result.push(arr2[j]) } } return(result) } let testArrays=mergeArrays([1,2,3],[2,3,4,5]) console.log(testArrays)

结果展示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1210777.shtml

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

相关文章

方波发生器,摆脱了 LC/RC 选频网络?

前言 前面我们介绍的几款运放振荡器&#xff0c;核心思路都是 “选频” &#xff0c;比如&#xff1a;RC 相移网络靠相移锁定频率&#xff0c;文氏桥靠增益锁定频率&#xff0c;LC 网络则靠高阻抗峰值锁定频率。 今天我们来看一款基于运放触发器的振荡器 —— 它无需依赖 LC/…

2026想找优质蒸汽锅炉制造厂家?评测带你一探究竟,锅炉厂家/导热油锅炉/蒸汽锅炉,蒸汽锅炉公司找哪家

在工业生产、能源供应及特殊场景供热领域,蒸汽锅炉作为核心设备,其性能稳定性与场景适配性直接影响企业能耗成本、生产效率及安全合规性。据行业权威机构统计,2025年国内蒸汽锅炉市场规模突破120亿元,其中工业场景…

2026艺术漆市场风向标:诺兰迪直销厂家值得一试,外墙艺术漆/艺术肌理漆/墙面艺术漆/诺兰迪艺术漆,艺术漆供应商选哪家

随着消费升级与绿色建材政策的推进,艺术漆凭借其环保性、装饰性和功能性成为墙面装饰市场的新宠。据行业统计,2025年国内艺术漆市场规模已突破200亿元,年复合增长率超15%,其中环保认证产品占比达68%。然而,市场鱼…

冲刺Day4

Scrum 冲刺博客 Day4 1. 今日站立式会议参会人:何俊朗 会议纪要:确认 Day4 验收口径(自动违规、锁定阈值、管理员豁免解锁),约定缩短 CHECKIN_GRACE_MINUTES 做快速验证 照片:线上会议无照片2. 昨天已完成的工作…

Web学习之网络通信

一、网络通信 互联网中主机和主机连接必须遵守待定的要求&#xff0c;这个要求成为协议OSI&#xff08;Open System Interconnection&#xff09;开放式系统互联&#xff0c;定义了计算机互联时网络通信的7层目前大规模使用的是TCP/IP协议 应用层 合并OSI中5&#xff0c;6&…

一文掌握 Spring AI:集成主流大模型的完整方案与思考

一文掌握 Spring AI&#xff1a;集成主流大模型的完整方案与思考 Spring AI 是 Spring 生态中一个新兴的框架&#xff0c;旨在简化 Java/Spring Boot 应用与主流大语言模型&#xff08;Large Language Models, LLM&#xff09;的集成。它提供了一套统一的抽象接口&#xff0c;…

入门篇--人工智能发展史-10-从MCP协议到AI Agent:从静态知识到动态智能,智能体的全面演进之路

入门篇 | 人工智能发展史 - 第10讲 从 MCP 协议到 AI Agent&#xff1a;从静态知识到动态智能&#xff0c;智能体的全面演进之路 这一讲的主题跨越了大约 1970 年代到 2025–2026 年的半个多世纪&#xff0c;但核心线索非常清晰&#xff1a; 从「人类把知识写进机器」 → 到「…

2026主流GEO服务商全景图谱,GEO机制深度解析与服务商选型权威指南

随着生成式AI全面渗透用户信息获取路径,AI搜索平台正成为To B企业不可忽视的新流量入口。据艾瑞咨询2026年初数据显示,国内主流AI对话平台(DeepSeek、豆包、Kimi、腾讯元宝等)月活跃用户总规模已突破5亿,其中企业…

2026年山东短视频制作服务商权威推荐榜单:短视频策划 /短视频运营 /短视频引流/ 短视频文案 /短视频脚本源头服务商精选

在数字化转型浪潮中,短视频已成为工业制造企业与B2B品牌实现营销破局、精准获客的核心工具。一份专业调研显示,超过80% 的制造业企业已认识到线上内容营销的重要性,但其中大部分机构的宣传内容仍停留在简单的“数据…

Linux(ubuntu)如何锁定cpu频率工作在最低能耗模式下

最低频率最省电最省钱 三部曲&#xff1a; 1 sudo apt install -y cpufrequtils linux-tools-common linux-tools-generic 2 sudo cpupower frequency-set -g powersave 3 cpufreq-info 性能对比 https://blog.csdn.net/ZhangRelay/article/details/157299108 最高性…

linux下如何通过与AI对话设置thinkpad电池充电阈值

结论acpi配置/etc/tlp.confsudo gedit /etc/tlp.conf修改前&#xff1a;修改参数&#xff1a;保存并使配置生效&#xff1a;50 80全部&#xff1a;ros2mobile:~$ sudo tlp-stat -b [sudo] password for ros2: --- TLP 1.6.1 -------------------------------------------- Bat…

如何更环保(更省钱)的使用各类电子耗材/消耗品/易损件~电池为例

信息 ros2mobile:~$ acpi -V Battery 0: Not charging, 79% Battery 0: design capacity 3609 mAh, last full capacity 1461 mAh 40% Adapter 0: on-line Thermal 0: ok, 34.0 degrees C Thermal 0: trip point 0 switches to mode critical at temperature 97.0 degrees C C…

深入解析:STM32——按钮实验

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

论文答辩时,评审组导师一旦开始问问题,通常会问哪些问题?

先说一句你可能不爱听、但非常重要的话&#xff1a;评审组导师一问问题&#xff0c; 其实已经在心里对你的论文有了一个初步判断。接下来的提问&#xff0c; 不是临时发挥&#xff0c; 而是围绕几个固定维度&#xff0c;快速确认三件事&#xff1a;这篇论文是不是你真正理解的研…

多线程核心知识

多线程核心知识 1. 线程的创建方式继承Thread方法:继承 java.lang.Thread 类,重写 run() 方法。 启动:创建子类实例,调用其 start() 方法。 特点:简单,但Java单继承限制了扩展性。class MyThread extends Thread…

2025年有实力的户外led大屏广告公司承包商找哪家,公交广告/地铁广告/广播电台广告,户外led大屏广告公司排行

随着城市数字化进程加速,户外LED大屏广告凭借高曝光、强互动、精准触达的特性,成为品牌抢占消费者心智的核心战场。据行业数据显示,2024年全国户外LED广告市场规模突破1200亿元,其中一线及新一线城市占比超60%,但…

一个月内面了30家公司,薪资从18K变成28K,真行啊····

工作3年&#xff0c;换了好几份工作&#xff08;行业流行性大&#xff09;&#xff0c;每次工作都是裸辞。朋友都觉得不可思议。因为我一直对自己很有信心&#xff0c;而且特别不喜欢请假面试&#xff0c;对自己负责也对公司负责。 但是这次没想到市场环境非常不好&#xff0c;…

面了十几家公司测试岗,我终于悟了,面试无非就是这些题

测试岗的面试其实都是大同小异的&#xff0c;这里我收集整理了185道高频面试题&#xff0c;希望对在找工作或者准备跳槽的各位小伙伴有所帮助&#xff01; 一. 测试基础 1.如何制定测试计划 参考答案&#xff1a; 测试计划包括测试目标、测试范围、测试环境的说明、测试类型…

2026年深圳企业邮箱注册公司推荐:深圳市聚诚在线科技有限公司,企业邮箱/企业域名/网易企业邮箱/企业邮箱管理公司精选

在全球电子通信技术日新月异的背景下,企业邮箱的效能边界不断拓展,其技术架构已从单一邮件服务器发展为整合云存储、协同办公与安全审计的综合性通信中台。 一份行业报告显示,企业邮箱的安全防护等级提升直接作用于…

嵌入式 C++ 高性能流式架构的设计

嵌入式 C 高性能流式架构的设计 摘要&#xff1a;在算力受限的嵌入式 SoC 平台上&#xff0c;高带宽传感器数据的实时处理是一个挑战。传统的基于多线程与操作系统原语的架构&#xff0c;往往受限于调度抖动、内存拷贝开销及锁竞争。 本文提出了一种平台无关的**“流式架构&am…