Day 1: Array Manipulation & Filtering

Q1: Nested Array to Categorized Object (10 mins)

Convert a nested array of products into an object grouped by category and sorted by price within each category.

Input:

const products = [
  ['Electronics', 'Laptop', 999],
  ['Clothing', 'Shirt', 29],
  ['Electronics', 'Mouse', 25],
  ['Clothing', 'Pants', 49],
  ['Electronics', 'Keyboard', 75],
  ['Clothing', 'Jacket', 89]
];

Expected Output:

{
  Electronics: [
    { name: 'Mouse', price: 25 },
    { name: 'Keyboard', price: 75 },
    { name: 'Laptop', price: 999 }
  ],
  Clothing: [
    { name: 'Shirt', price: 29 },
    { name: 'Pants', price: 49 },
    { name: 'Jacket', price: 89 }
  ]
}

Q2: Multi-level Filtering (10 mins)

Filter users who have completed at least 2 courses with a rating above 4.0.

Input:

const users = [
  {
    id: 1,
    name: 'Alice',
    courses: [
      { title: 'React', rating: 4.5, completed: true },
      { title: 'Node', rating: 3.8, completed: true },
      { title: 'CSS', rating: 4.2, completed: true }
    ]
  },
  {
    id: 2,
    name: 'Bob',
    courses: [
      { title: 'React', rating: 4.7, completed: true },
      { title: 'Vue', rating: 4.3, completed: false }
    ]
  },
  {
    id: 3,
    name: 'Charlie',
    courses: [
      { title: 'Angular', rating: 4.6, completed: true },
      { title: 'React', rating: 4.8, completed: true },
      { title: 'Node', rating: 4.1, completed: true }
    ]
  }
];

Expected Output:

[
  { id: 1, name: 'Alice' },
  { id: 3, name: 'Charlie' }
]


Day 2: Object Transformation & Grouping

Q1: Object Array to Nested Structure (12 mins)

Transform flat employee data into a hierarchical department structure with salary statistics.

Input:

const employees = [
  { id: 1, name: 'John', dept: 'Engineering', salary: 80000 },
  { id: 2, name: 'Jane', dept: 'Engineering', salary: 95000 },
  { id: 3, name: 'Bob', dept: 'Marketing', salary: 65000 },
  { id: 4, name: 'Alice', dept: 'Engineering', salary: 88000 },
  { id: 5, name: 'Charlie', dept: 'Marketing', salary: 72000 },
  { id: 6, name: 'Diana', dept: 'HR', salary: 70000 }
];

Expected Output: