# Глубокие значения по умолчанию

Применяет глубокие значения по умолчанию с lodash _.defaultsDeep

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

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

- **Ключевые слова:** defaultsDeep, объект, lodash, вложенный, свойства

## Обзор

Рекурсивно назначает значения по умолчанию для undefined свойств.

**Особенности:**
- Использует lodash `_.defaultsDeep`
- Применяет значения по умолчанию к вложенным объектам
- Заполняет только свойства undefined

**Пример:**
- Цель: `{"a":{"b":1}}`
- Источник 1: `{"a":{"b":2,"c":3}}`
- Результат: `{"a":{"b":1,"c":3}}`

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

- **Целевой объект** (textarea): Введите целевой JSON объект
- **Источник 1** (textarea): Первый объект источника
- **Источник 2** (textarea): Необязательный объект источника
- **Источник 3** (textarea): Необязательный объект источника

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

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

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

- Вводите целевой JSON объект в поле 'Целевой объект'.
- Добавьте один или несколько объектов источников в поля 'Источник 1', 'Источник 2' и 'Источник 3'.
- Инструмент применяет функцию _.defaultsDeep, рекурсивно назначая значения по умолчанию для undefined свойств.
- Результат — объединённый объект, где целевые значения имеют приоритет.

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

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

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

### Что делает инструмент 'Глубокие значения по умолчанию'?

Он рекурсивно применяет значения по умолчанию к целевому объекту, заполняя только undefined свойства с помощью lodash _.defaultsDeep.

### Как использовать несколько источников?

Вы можете добавить до трёх объектов источников: один обязательный в поле 'Источник 1' и два необязательных в поля 'Источник 2' и 'Источник 3'.

### Какой приоритет имеют значения?

Целевой объект имеет приоритет: его значения не изменяются, источники добавляют только отсутствующие свойства.

### Поддерживаются ли не-JSON форматы?

Нет, инструмент работает только с JSON объектами. Все входные данные должны быть в формате JSON.

### Что происходит с массивами или другими типами данных?

Функция _.defaultsDeep обрабатывает вложенные объекты, но для массивов и других типов поведение может отличаться; рекомендуется использовать с объектами.

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

- [Назначить с наследованием](https://elysiatools.com/ru/tools/assign-in-object): Назначает собственные и наследуемые свойства с lodash _.assignIn
- [Глубоко Выровнять Массив](https://elysiatools.com/ru/tools/flatten-deep-array): Полностью выравнивает массив, используя lodash _.flattenDeep
- [Перебор объекта](https://elysiatools.com/ru/tools/for-in-object): Перебирает свойства с lodash _.forIn
- [Перебор собственных](https://elysiatools.com/ru/tools/for-own): Перебирает собственные свойства с lodash _.forOwn
- [Инвертировать по](https://elysiatools.com/ru/tools/invert-by): Инвертирует с группировкой по значениям lodash _.invertBy
- [Инвертировать объект](https://elysiatools.com/ru/tools/invert-object): Инвертирует ключи и значения с lodash _.invert
- [Список унаследованных ключей](https://elysiatools.com/ru/tools/keys-in-list): Список собственных и унаследованных ключей с lodash _.keysIn
- [Список ключей](https://elysiatools.com/ru/tools/keys-list): Список собственных ключей с lodash _.keys

## Примеры

- [Примеры Расширенного Применения 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, включая конфигурацию, линтинг, форматирование, сборку и управление проектами
