我有兩個 json 檔案,一個是課程,另一個是講師。課程和講師與 _id 匹配。現在我想要的是當發送講師詳細資訊時,該特定講師的所有課程也會在回應中發送。我應該怎么做?
講師 JSON 資料
let instructorData = [
{
_id: 1,
name: "superman",
courses: [1,3],
},{
_id: 2,
name: "batman",
courses: [2],
}
];
module.exports = {
instructorData: instructorData,
};
課程 JSON 資料
let coursesData = [
{
_id: 1,
name: "DC",
instructor: {
_id:1
},
},{
_id: 2,
name: "Marvel",
instructor: {
_id:2
},
},{
_id: 3,
name: "DC vs Marvel",
instructor: {
_id:1
},
},
];
module.exports = {
coursesData: coursesData,
};
對于這里的講師 1,我有 2 門課程。我怎樣才能找到/迭代這 2 門課程?
例如,當我得到一名教練時,我想要這樣:
{ name: "superman",
courses: [{name: "DC"},{name: "DC vs Marvel"}]
}
uj5u.com熱心網友回復:
希望這有幫助。
let instructorData = [
{
_id: 1,
name: "superman",
courses: [1, 3],
},
{
_id: 2,
name: "batman",
courses: [2],
}
];
let coursesData = [
{
_id: 1,
name: "DC",
instructor: {
_id: 1
},
},
{
_id: 2,
name: "Marvel",
instructor: {
_id: 2
},
},
{
_id: 3,
name: "DC vs Marvel",
instructor: {
_id: 1
},
},
];
const getInstructor = id => {
const found = instructorData.find(instructor => instructor._id == id);
if (!found) return "Instructor not found!";
found.courses = found.courses.map(course => coursesData.find(courseData => courseData._id === course));
return found;
}
console.log(getInstructor(1));
console.log(getInstructor(2));
console.log(getInstructor(3));
uj5u.com熱心網友回復:
我認為您不會以這種方式遇到未找到的錯誤
let instructorData = [
{
_id: 1,
name: "superman",
courses: [1,3],
},{
_id: 2,
name: "batman",
courses: [2],
}
];
let coursesData = [
{
_id: 1,
name: "DC",
instructor: {
_id:1
},
},{
_id: 2,
name: "Marvel",
instructor: {
_id:2
},
},{
_id: 3,
name: "DC vs Marvel",
instructor: {
_id:1
},
},
];
let instructorCourses = [];
instructorData.forEach((instructor) => {
let instructorId = instructor._id;
let instructorCourse = {};
instructorCourse.instructorId = instructorId;
instructorCourse.instructorName = instructor.name;
instructorCourse.courses = [];
coursesData.forEach((courseD) => {
let courseInstructorId = courseD.instructor._id;
if (instructorId === courseInstructorId) {
let course = {};
course.courseId = courseD._id;
course.courseName = courseD.name;
instructorCourse.courses.push(course);
}
});
instructorCourses.push(instructorCourse);
});
let value = JSON.stringify(instructorCourses, null, "\t");
console.log(value);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/524489.html
上一篇:回呼函式完成后如何執行代碼?
