Используйте map и вычисляемое имя свойства: каждый результат — новый объект только с запрошенным ключом. Это не массив самих значений.
Получение значений полей объектов по заданному ключу
Используйте map и вычисляемое имя свойства: каждый результат — новый объект только с запрошенным ключом. Это не массив самих значений.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Создайте функцию, принимающую массив объектов и строку‑ключ, которая возвращает новый массив, где каждый элемент содержит только то свойство, соответствующее переданному ключу.
// ([{label: "label1", id: 1}], "label") => [{label: "label1"}]
// ([{label: "label1", id: 1}], "id") => [{id: 1}]
Ответ
Используйте map и вычисляемое имя свойства: каждый результат — новый объект только с запрошенным ключом. Это не массив самих значений.
function pickField(items, key) {
return items.map(item => ({ [key]: item[key] }));
}
Для ключа label получится [{label:'label1'}], для id — [{id:1}]. Исходные объекты не изменяются. Если свойства нет, создаётся ключ со значением undefined; если такой результат нежелателен, заранее проверяйте Object.hasOwn. Вложенное значение-объект копируется по ссылке, глубокое клонирование условием не требуется.