# Найти ключ

Находит первый подходящий ключ с lodash _.findKey

> Каноническая страница: https://elysiatools.com/ru/tools/find-key

- **Категория:** Data Processing

- **Ключевые слова:** найти, ключ, lodash, объект, предикат

## Обзор

Находит первый ключ, значение которого соответствует предикату.

**Особенности:**
- Использует lodash `_.findKey`
- Поддерживает предикаты property, matchesProperty или matches объекта
- Возвращает первый ключ или null

**Пример:**
- Объект: `{"a":{"active":false},"b":{"active":true}}`
- Тип предиката: `Property`
- Имя свойства: `active`
- Результат: `"b"`

## Входные данные

- **Объект** (textarea): Введите JSON объект
- **Тип предиката** (select)
- **Имя свойства** (text): Имя truthy свойства для predicat property
- **Путь совпадения** (text): Путь свойства для matchesProperty
- **Значение совпадения** (textarea): JSON значение для совпадения
- **Объект совпадения** (textarea): JSON объект для совпадения

## Когда использовать

- Когда нужно найти ключ в объекте по значению определенного свойства.
- При работе с JSON-данными для извлечения первого соответствующего ключа на основе предиката.
- Для автоматизации поиска в объектах с использованием гибких условий совпадения.

## Как это работает

- Введите JSON-объект в поле 'Объект' для анализа.
- Выберите тип предиката: свойство, совпадение свойства или совпадение объекта.
- Настройте параметры предиката, такие как имя свойства или значение для совпадения.
- Инструмент вернет первый ключ, удовлетворяющий условию, или null, если совпадений нет.

## Сценарии использования

- Поиск активного пользователя в объекте с данными сессий, где ключ содержит информацию о статусе.
- Извлечение ключа конфигурации из JSON-ответа API по определенному параметру, например, версии или режиму.
- Автоматическая обработка объектов с товарами для нахождения ключа товара с заданной ценой или свойством.

## Частые вопросы

### Какие типы предикатов поддерживаются?

Поддерживаются три типа: свойство (property), совпадение свойства (matchesProperty) и совпадение объекта (matchesObject).

### Что возвращает инструмент, если ключ не найден?

Возвращает null, если ни один ключ не соответствует предикату.

### Можно ли использовать вложенные объекты?

Да, инструмент работает с любыми JSON-объектами, включая вложенные структуры.

### Нужно ли устанавливать библиотеку lodash?

Нет, инструмент использует lodash внутренне, дополнительная установка не требуется.

### Как задать предикат для matchesProperty?

Укажите путь свойства в поле 'Путь совпадения' и значение в поле 'Значение совпадения'.

## Связанные инструменты

- [Счет по ключу](https://elysiatools.com/ru/tools/count-by): Считает элементы по ключу с lodash _.countBy
- [Группировка по ключу](https://elysiatools.com/ru/tools/group-by): Группирует элементы по ключу с lodash _.groupBy
- [Первый Элемент](https://elysiatools.com/ru/tools/head-item): Получает первый элемент массива с помощью lodash _.head
- [Индекс Значения](https://elysiatools.com/ru/tools/index-of): Находит индекс значения в массиве с помощью lodash _.indexOf
- [Индекс вставки](https://elysiatools.com/ru/tools/sorted-index): Находит индекс вставки с lodash _.sortedIndex
- [Хвост массива](https://elysiatools.com/ru/tools/tail-items): Возвращает все кроме первого с lodash _.tail
- [Взять элементы](https://elysiatools.com/ru/tools/take-items): Берет первые N элементов с lodash _.take
- [Назначить с наследованием](https://elysiatools.com/ru/tools/assign-in-object): Назначает собственные и наследуемые свойства с lodash _.assignIn

## Примеры

- [Примеры Расширенного Применения Grafana](https://elysiatools.com/ru/samples/grafana-samples): Комплексные примеры Grafana, охватывающие продвинутый дизайн дашбордов, конфигурацию оповещений, интеграцию источников данных и разработку плагинов
- [Примеры QR-кодов](https://elysiatools.com/ru/samples/qrcode-samples): Примерные изображения QR-кодов для тестирования инструментов чтения и генерации QR-кодов
- [Примеры D3.js Визуализации Данных](https://elysiatools.com/ru/samples/d3js-data-visualization): Комплексные примеры визуализации данных D3.js, включая диаграммы, карты, анимации и интерактивные визуализации
- [Примеры JavaScript Toolchain Rome](https://elysiatools.com/ru/samples/rome): Примеры JavaScript toolchain Rome, включая конфигурацию, линтинг, форматирование, сборку и управление проектами
