Назад к задачам
Junior — Middle+
6

Извлечение выбранных полей объекта с доступом только для чтения

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо написать функцию getObjectValues, принимающую два аргумента: исходный объект и массив строк‑ключей. Функция должна сформировать и вернуть новый объект, в котором присутствуют лишь те свойства, имена которых указаны в массиве, и их значения. При этом свойства полученного объекта должны быть защищены от изменения – любые попытки записать новое значение должны приводить к ошибке доступа.

const user = {
  name: 'dima',
  age: 24,
  channel: 'SIBERIA CAN CODE - Frontend',
};

const nameAndChannel = getObjectValues(user, ['name', 'channel']);
console.log('@', nameAndChannel);

nameAndChannel.name = 'ne dima'; // error readonly

В решении можно воспользоваться методами Object.defineProperty, Object.defineProperties или Object.freeze для обеспечения неизменяемости свойств.