Найдите первый собственный перечисляемый ключ, чьё значение строго равно 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 не равен себе при ===; другие правила равенства требуют отдельного контракта.