-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathL1-Employee_Performance_Evaluation_System.js
36 lines (28 loc) · 1.2 KB
/
L1-Employee_Performance_Evaluation_System.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
function processEmployees() {
const employees = [];
while (true) {
const name = prompt("Enter employee name (or 'exit' to stop):");
if (name.toLowerCase() === 'exit') {
break;
}
const tasksCompleted = parseInt(prompt("Enter number of tasks completed:"));
const rating = parseFloat(prompt("Enter employee rating:"));
employees.push({ name: name, tasksCompleted: tasksCompleted, rating: rating });
}
// 1. Filter employees with more than 5 tasks completed
const filteredEmployees = employees.filter(employee => employee.tasksCompleted > 5);
// 2. Map to employee names and performance levels
const mappedEmployees = filteredEmployees.map(employee => ({
name: employee.name,
performanceLevel: employee.rating > 4.5 ? "Excellent" : (employee.rating >= 3 ? "Good" : "Needs Improvement")
}));
// 3. Sort employees by performance level
const sortedEmployees = mappedEmployees.sort((a, b) => {
const order = { "Excellent": 1, "Good": 2, "Needs Improvement": 3 };
return order[a.performanceLevel] - order[b.performanceLevel];
});
// 4. Return the sorted array
return sortedEmployees;
}
const topPerformers = processEmployees();
console.log(topPerformers);