news 2026/6/9 20:13:18

JS函数练习题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)

结果展示:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 16:03:03

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 最高性…

作者头像 李华
网站建设 2026/6/10 16:04:35

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

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

作者头像 李华
网站建设 2026/6/6 2:38:47

读研方法-2026

文献综述 ① 读综述起手&#xff0c;快速扫清盲区 构建文献图谱-Connected Papers | Find and explore academic papers 提供真实文献的-Paper Digest – AI-Powered Research Platform 知网-硕博论文综述部分-中国知网 边看边记&#xff0c;构建自己的关键词语录&#xff…

作者头像 李华
网站建设 2026/6/10 15:35:53

BUUCTF:[GXYCTF2019]Ping Ping Ping

BUUCTF&#xff1a;[GXYCTF2019]Ping Ping Ping 本文知识点&#xff1a; 变量替换${}和命令替换$()&#xff1a; 变量替换&#xff1a;IFS,大括号中的是一个变量&#xff0c;这个的功能就是将变量的值展开出来&#xff0c;比如假设有一个变量‘a123‘,‘{IFS},大括号中的是一个…

作者头像 李华
网站建设 2026/6/6 22:20:37

为什么我说 XinServer 很适合创业小团队?

为什么我说 XinServer 很适合创业小团队&#xff1f; 最近跟几个创业的朋友聊天&#xff0c;发现大家有个共同的烦恼&#xff1a;产品想法贼棒&#xff0c;前端设计也酷炫&#xff0c;但一到后端开发就卡壳。要么是招不到合适的后端&#xff0c;要么是后端开发周期太长&#x…

作者头像 李华