JavaScript - 从两个数据库中查询的特定
Posted
技术标签:
【中文标题】JavaScript - 从两个数据库中查询的特定【英文标题】:JavaScript - specific queried from two databases 【发布时间】:2022-01-21 06:28:59 【问题描述】:我需要有关 javascript 任务的帮助。 如何从两个数据库中获取特定查询?
任务: 查看 index.js 文件 实现gradeOverview() 函数,它获取变量students 和 为每个学生评分并创建成绩概览。从而 学生数组中的每个元素都应投影到以下格式的对象: 学生:(students[i]),成绩:[(grades[j], grades[j+k], ...)]
这是我的函数,它访问两个数据库,应该根据“学生人数”一次从一个数据库中检索和显示一个值。
function gradeOverview(students, grades)
const result = students.map((student) => [
student: student,
grade: grades.reduce((grades, grade) =>
const student number = grade.studentnumber;
if (grades[matriculationnumber] == null) grades[matriculationnumber] = [];
grades[matriculationnumber].push(grade);
return grades;
),
,
]);
console.log(result);
return result;
// TODO: implement me
数据:
var students = [
"matrikelnummer": 4636,
"vorname": "Vérane",
"nachname": "Voase"
]
var grades = [
"id": 628,
"matrikelnummer": 4636,
"grade": "3,3"
,
"id": 886,
"matrikelnummer": 4636,
"grade": "5,0"
]
输出:
"student":
"matrikelnummer": 4636,
"vorname": "Vérane",
"nachname": "Voase"
,
"grades": [
"id": 628,
"matrikelnummer": 4636,
"grade": "3,3"
,
"id": 886,
"matrikelnummer": 4636
"grade": "3,6"
]
,
【问题讨论】:
【参考方案1】:更新:小提琴链接https://jsfiddle.net/uzrodex3/
我希望我猜对了您放入gradeOverview 函数的传入数据。
const studentsQueryResponse = [
name: "John Doe",
studentNumber: 123
,
name: "Johan Doe",
studentNumber: 321
,
name: "Jane Doe",
studentNumber: 111
]
const gradesQueryResponse = [
studentNumber: 123,
grade: 1
,
studentNumber: 123,
grade: 3
,
studentNumber: 321,
grade: 5
,
studentNumber: 123,
grade: 1
]
在这种情况下你的函数会返回
[
"student":
"name":"John Doe",
"studentNumber":123
,
"grade":[1,3,1]
,
"student":
"name":"Johan Doe",
"studentNumber":321
,
"grade":[5]
,
"student":
"name":"Jane Doe",
"studentNumber":111
,
"grade":[]
]
如果您想在数组中返回整个grade
对象,则只需删除从等级对象返回等级属性值的map
行
function gradeOverview(students, grades)
console.log("Input arguments", students, grades)
const results = students.map((student) =>
return
student: student,
grade: grades
.filter((gradeObject) => gradeObject.studentNumber === student.studentNumber)
.map((gradeObject) => gradeObject.grade)
);
console.log("Results", results);
return results;
然后你调用你的函数
gradeOverview(studenstQueryResponse, gradesQueryResponse)
【讨论】:
+ 对您的代码进行注释:1. 变量“matriculationnumber”在上下文中不存在,我猜它应该是“studentnumber” 2. Array.reduce 是如何工作的LINK。您可以使用 Array.reduce 而不是 Array.filter 但这种方法在我看来更具可读性 有适用于您更新数据的代码。 JSFIDDLE以上是关于JavaScript - 从两个数据库中查询的特定的主要内容,如果未能解决你的问题,请参考以下文章