Tell us what’s happening:
Code perfectly correct, validation not working prorperly.
I removed the console.log line, added the function correctly returning null and still the validation isn’t working. Why?
Your code so far
const rawData = {
"Computer Science": {
Dept_code: "CSE",
programs: [
{
id: "CSE101",
name: "Database Management System",
room: "405",
instructors: [
{ id: "INS001", name: "Alejandro", email: "alejandro@example.com", officeHours: "Sun-Tue 10AM-12PM" },
{ id: "INS002", name: "Kenji", officeHours: null },
],
},
{
id: "CSE102",
name: "Data Structures",
room: null,
instructors: [
{ id: "INS003", name: "Fatima", email: "fatima@example.com", officeHours: "Mon-Wed 10AM-2PM" },
],
},
{
id: "CSE103",
name: "Operating Systems",
room: "401",
instructors: [
{ id: "INS005", name: "Wei", email: "wei@example.com", officeHours: "Thu 1PM-3PM" },
],
},
],
},
"Business Administration": {
Dept_code: "BBA",
programs: [
{
id: "BBA101",
name: "Financial Accounting",
room: "201",
instructors: [{ id: "INS004", name: "Sofia", email: "sofia@example.com" }],
},
{
id: "BBA102",
name: "Marketing Management",
room: "204",
instructors: [
{ id: "INS006", name: "Robin", email: "robin@example.com", officeHours: "Tue-Thu 9AM-11AM" },
],
},
{
id: "BBA103",
name: "Business Law",
room: "203",
instructors: [
{ id: "INS007", name: "Priya", email: "priya@example.com", officeHours: "Mon 2PM-4PM" },
],
},
],
},
};
function normalizeDirectory(rawData) {
const departmentsById = {};
const programsById = {};
const instructorsById = {};
const instructorsByEmail = {};
const departmentEntries = Object.entries(rawData);
for (let i = 0; i < departmentEntries.length; i++) {
const [departmentName, departmentData] = departmentEntries[i];
const departmentId = departmentData.Dept_code || `dept-${i + 1}`;
departmentsById[departmentId] = {
id: departmentId,
code: departmentData.Dept_code,
name: departmentName,
programIds: [],
};
for (let j = 0; j < departmentData.programs.length; j++) {
const program = departmentData.programs[j];
programsById[program.id] = {
...program,
departmentId,
};
departmentsById[departmentId].programIds.push(program.id);
for (let k = 0; k < program.instructors.length; k++) {
const instructor = program.instructors[k];
instructorsById[instructor.id] = {
...instructor,
programId: program.id,
departmentId,
};
if (instructor.email) {
instructorsByEmail[instructor.email] = instructor.id;
}
}
}
}
return {
departmentsById,
programsById,
instructorsById,
instructorsByEmail,
};
// User Editable Region
}
function getInstructorByEmail(email, normalizedData){
return null;
}
// User Editable Region
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:158.0) Gecko/20100101 Firefox/158.0
Challenge Information:
Build a Campus Directory Normalizer - Step 27