如何使用 filter()、map() 处理数组的值? JavaScript
Posted
技术标签:
【中文标题】如何使用 filter()、map() 处理数组的值? JavaScript【英文标题】:How to use filter(), map() to work with values fo an array? JavaScript 【发布时间】:2022-01-21 10:02:45 【问题描述】:我的任务是:
实现函数duplicateStudents(),获取变量 “学生”和具有相同预科的学生的过滤器 数字。首先,通过预科投射学生的所有元素 数字。之后,您可以相对轻松地过滤重复项。在 使用以下格式的最终项目: matrikelnummer: (matrikelnummer), 学生: [ (students[i], students[j], ... ) ] .
实现 invalidGrades() 函数,获取变量“grades” 并过滤可能不正确的笔记。例如,为了 保持手动检查尽可能低,该功能应确定 为其传输了几个年级的入学人数 相同的课程。示例:对于入学编号 X,一个 2. 7 和一个 2。 为课程 Y 传输了 3 个。但是,该功能也需要 考虑到有效的情况,我。 e.对于入学编号 X,一次 课程 Y 传输 5,0 和一次 2,3。
在此任务中,您应该只使用 map()、reduce() 和 filter()。不要 实现for循环。
function duplicateStudents(students)
return students
// TODO: implement me
function invalidGrades(grades)
return grades
.map((s) =>
// TODO: implement me
return
matrikelnummer: -1/* put something here */,
grades: []/* put something here */,
;
)
.filter((e) => e.grades.length > 0)
我在单独文件中的变量学生和成绩。我知道上传文件也可能会有所帮助,但一个是 1000 行长,另一个是 500 行。这就是我不上传它们的原因。但我希望可以在没有价值观的情况下完成任务。重要的是,这些值表示为数组
【问题讨论】:
How do I ask and answer homework questions? 【参考方案1】:我会给你一个在 duplicateStudents
上使用 reduce 的例子,它不会返回预期的格式,但你可以从那里开始。
const duplicateStudents = (students) =>
const grouping = students.reduce((previous, current) =>
if (previous[current.matrikelnummer]) previous[current.matrikelnummer].push(current); // add student if matrikelnummer already exist
else previous[current.matrikelnummer] = [current];
return previous;
, );
console.log(grouping);
return //you could process `grouping` to the expected format in here
;
以下是您的偏好:
map filter reduce【讨论】:
以上是关于如何使用 filter()、map() 处理数组的值? JavaScript的主要内容,如果未能解决你的问题,请参考以下文章
关于map some filter every 一些临时记忆
ES5新增 数组操作forEach()map()filter()some()every()