Получение имени свойства объекта по его значению

Найдите первый собственный перечисляемый ключ, чьё значение строго равно target. Object.keys вместе с find вернёт undefined, если совпадений нет.

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

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

Найдите первый собственный перечисляемый ключ, чьё значение строго равно target. Object.keys вместе с find вернёт undefined, если совпадений нет.

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

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

Условие

Дан объект. Требуется реализовать функцию, которая принимает объект и искомое значение, а возвращает имя свойства, соответствующее этому значению. Если такое значение в объекте отсутствует, функция должна вернуть undefined или null.

function findKeyByValue(obj, target) {
    // ваш код
}

Пример использования:

const data = { a: 1, b: 2, c: 3 };
console.log(findKeyByValue(data, 2)); // "b"
console.log(findKeyByValue(data, 5)); // undefined

Ответ

Найдите первый собственный перечисляемый ключ, чьё значение строго равно target. Object.keys вместе с find вернёт undefined, если совпадений нет.

Решение:

function findKeyByValue(obj, target) {
    return Object.keys(obj).find(key => obj[key] === target);
}

Для {a: 1, b: 2, c: 3} поиск 2 вернёт b. При нескольких совпадениях берётся первое в порядке Object.keys. Символьные и неперечисляемые свойства исключены. Объекты сравниваются по ссылке, NaN не равен себе при ===; другие правила равенства требуют отдельного контракта.

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

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

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

Подробнее