Определение имени пользователя с наибольшей зарплатой среди людей младше заданного возраста

Пройдите people один раз, рассматривая только age < limitAge, и сохраните подходящего сотрудника с максимальной salary. При отсутствии кандидатов верните null.

Короткий ответ

Что ответить на собеседовании

Пройдите people один раз, рассматривая только age < limitAge, и сохраните подходящего сотрудника с максимальной salary. При отсутствии кандидатов верните null.

Подробный разбор

Ответ с пояснениями

Условие

Необходимо написать функцию, которая получает в качестве аргумента предельный возраст и возвращает имя того сотрудника, у которого максимальная зарплата, при условии, что его возраст меньше указанного порога.

const people = [
  { id: 1, age: 16, salary: 200, name: 'Andrey', roles: ['front'] },
  { id: 2, age: 21, salary: 250, name: 'Vasya', roles: ['back'] },
  { id: 3, age: 30, salary: 400, name: 'Sergey', roles: ['front', 'lead'] },
  { id: 4, age: 25, salary: 360, name: 'Dmitriy', roles: ['manager'] },
  { id: 5, age: 50, salary: 420, name: 'Max', roles: ['back', 'lead'] },
];

Ответ

Пройдите people один раз, рассматривая только age < limitAge, и сохраните подходящего сотрудника с максимальной salary. При отсутствии кандидатов верните null.

function highestPaidUnder(limitAge) {
  let best = null;
  for (const person of people) {
    if (person.age < limitAge && (!best || person.salary > best.salary)) best = person;
  }
  return best?.name ?? null;
}

Для порога 30 вернётся Dmitriy, для 31 — Sergey, для 16 — null. Граница строгая: сотрудник ровно указанного возраста не подходит. При одинаковой зарплате выбран первый в исходном порядке. Время O(n), дополнительная память O(1), сортировка и изменение исходных данных не нужны.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее