diff --git a/src/challenge.ts b/src/challenge.ts index fad2280..de53761 100644 --- a/src/challenge.ts +++ b/src/challenge.ts @@ -20,7 +20,7 @@ import { Student } from "./students"; function getStudentsByCourse(students: Student[], course: string): Student[] { // write your code here... - return []; // replace empty array with what you see is fit + return students.filter((student) => student.courses.includes(course)); // replace empty array with what you see is fit } /** @@ -36,8 +36,15 @@ function getStudentsByCourse(students: Student[], course: string): Student[] { */ function listAllCourses(students: Student[]): string[] { // write your code here... + const courses = new Set(); - return []; // replace empty array with what you see is fit + students.forEach((student) => { + student.courses.forEach((course) => { + courses.add(course); + }); + }); + + return Array.from(courses); // replace empty array with what you see is fit } export { getStudentsByCourse, listAllCourses }; diff --git a/src/students.ts b/src/students.ts index ac9d6c0..e69388a 100644 --- a/src/students.ts +++ b/src/students.ts @@ -72,7 +72,7 @@ const students: Student[] = [ function getStudentName(student: Student): string { // write your code here... - return ""; // replace empty string with what you see is fit + return student.name; // replace empty string with what you see is fit } /** @@ -87,7 +87,7 @@ function getStudentName(student: Student): string { function getCourse(student: Student, courseIndex: number): string { // write your code here... - return ""; // replace empty string with what you see is fit + return student.courses[courseIndex]; // replace empty string with what you see is fit } /** @@ -103,7 +103,7 @@ function getCourse(student: Student, courseIndex: number): string { */ function addCourseToStudent(student: Student, course: string): Student { // write your code here... - + student.courses.push(course); return student; } @@ -117,7 +117,7 @@ function addCourseToStudent(student: Student, course: string): Student { function countCourses(student: Student): number { // write your code here... - return -1; // replace -1 with what you see is fit + return student.courses.length; // replace -1 with what you see is fit } /** @@ -133,7 +133,10 @@ function countCourses(student: Student): number { */ function removeCourseFromStudent(student: Student, course: string): Student { // write your code here... - + const index = student.courses.indexOf(course); + if (index !== -1) { + student.courses.splice(index, 1); + } return student; } @@ -156,7 +159,7 @@ function findStudentById( ): Student | undefined { // write your code here... - return undefined; // replace undefined with what you see is fit + return students.find((student) => student.id === studentId); // replace undefined with what you see is fit } export {