Nested object
Sun Nov 03 2024 16:16:49 GMT+0000 (Coordinated Universal Time)
Saved by @signup1
// Define a nested object for a company
const company = {
name: "GeeksforGeeks",
location: "Noida",
employees: {
count: 100,
departments: ["Development", "Design", "Marketing"],
details: [
{ name: "John Doe", position: "Developer" },
{ name: "Jane Smith", position: "Designer" }
]
}
};
// Function to display company information
function displayCompanyInfo(company) {
console.log("Company Name:", company.name);
console.log("Location:", company.location);
console.log("Employee Count:", company.employees.count);
console.log("Departments:", company.employees.departments.join(", "));
console.log("Employee Details:");
company.employees.details.forEach(employee => {
console.log(`- ${employee.name}, Position: ${employee.position}`);
});
}
// Function to add a new employee
function addEmployee(company, employeeName, employeePosition) {
const newEmployee = { name: employeeName, position: employeePosition };
company.employees.details.push(newEmployee);
company.employees.count++;
}
// Function to update the department list
function addDepartment(company, departmentName) {
if (!company.employees.departments.includes(departmentName)) {
company.employees.departments.push(departmentName);
console.log(`Department "${departmentName}" added.`);
} else {
console.log(`Department "${departmentName}" already exists.`);
}
}
// Display original company info
console.log("Original Company Information:");
displayCompanyInfo(company);
// Add a new employee
addEmployee(company, "Alice Johnson", "Project Manager");
console.log("\nAfter Adding New Employee:");
displayCompanyInfo(company);
// Add a new department
addDepartment(company, "Sales");
console.log("\nAfter Adding New Department:");
displayCompanyInfo(company);
// Attempt to add an existing department
addDepartment(company, "Development");
/*OUTPUT
Original Company Information:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 100
Departments: Development, Design, Marketing
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer
After Adding New Employee:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 101
Departments: Development, Design, Marketing
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer
- Alice Johnson, Position: Project Manager
After Adding New Department:
Company Name: GeeksforGeeks
Location: Noida
Employee Count: 101
Departments: Development, Design, Marketing, Sales
Employee Details:
- John Doe, Position: Developer
- Jane Smith, Position: Designer
- Alice Johnson, Position: Project Manager
Department "Development" already exists.*/



Comments