# Valores por defecto profundos

Aplica valores por defecto profundos con lodash _.defaultsDeep

> Página canónica: https://elysiatools.com/es/tools/defaults-deep

- **Categoría:** Data Processing

- **Palabras clave:** defaultsDeep, objeto, lodash, anidado, propiedades

## Descripción general

Asigna valores por defecto de forma recursiva a propiedades indefinidas.

**Aspectos destacados:**
- Usa lodash `_.defaultsDeep`
- Aplica defaults a objetos anidados
- Solo rellena propiedades undefined

**Ejemplo:**
- Destino: `{"a":{"b":1}}`
- Fuente 1: `{"a":{"b":2,"c":3}}`
- Resultado: `{"a":{"b":1,"c":3}}`

## Entradas

- **Objeto Destino** (textarea): Ingrese el objeto JSON destino
- **Fuente 1** (textarea): Primer objeto fuente
- **Fuente 2** (textarea): Objeto fuente opcional
- **Fuente 3** (textarea): Objeto fuente opcional

## Cuándo usarlo

- Cuando necesitas fusionar configuraciones de usuario con valores predeterminados del sistema.
- Al trabajar con objetos anidados donde solo deseas rellenar propiedades que aún no tienen valor.
- Para estandarizar estructuras de datos JSON que provienen de múltiples fuentes o APIs.

## Cómo funciona

- Introduce tu objeto principal en el campo de destino.
- Añade uno o varios objetos fuente que contengan los valores por defecto que deseas aplicar.
- La herramienta procesa los objetos de forma recursiva, asignando valores solo a las claves que sean 'undefined'.
- Obtén el objeto resultante con la estructura completa y los valores predeterminados integrados.

## Casos de uso

- Fusión de configuraciones de aplicaciones con esquemas base.
- Normalización de respuestas de API que carecen de campos opcionales.
- Gestión de estados iniciales en aplicaciones de frontend con estructuras de datos complejas.

## Preguntas frecuentes

### ¿Qué hace exactamente la función defaultsDeep?

Asigna valores de forma recursiva a propiedades indefinidas en un objeto, respetando los valores existentes en el objeto destino.

### ¿Sobrescribe los valores que ya existen?

No, la herramienta solo rellena las propiedades que son 'undefined', manteniendo intactos los valores definidos en el objeto destino.

### ¿Puedo usar múltiples objetos fuente?

Sí, puedes proporcionar hasta tres objetos fuente para aplicar capas sucesivas de valores por defecto.

### ¿Es compatible con objetos profundamente anidados?

Sí, la herramienta recorre toda la jerarquía del objeto para aplicar los valores por defecto en cualquier nivel de profundidad.

### ¿Qué formato de entrada se requiere?

La herramienta requiere objetos en formato JSON válido en cada uno de los campos de entrada.

## Herramientas relacionadas

- [Asignar con herencia](https://elysiatools.com/es/tools/assign-in-object): Asigna propiedades propias y heredadas con lodash _.assignIn
- [Aplanar Array Profundamente](https://elysiatools.com/es/tools/flatten-deep-array): Aplana un array completamente usando lodash _.flattenDeep
- [Recorrer objeto](https://elysiatools.com/es/tools/for-in-object): Itera propiedades con lodash _.forIn
- [Recorrer propio](https://elysiatools.com/es/tools/for-own): Itera propiedades propias con lodash _.forOwn
- [Invertir por](https://elysiatools.com/es/tools/invert-by): Invierte agrupando por valores con lodash _.invertBy
- [Invertir objeto](https://elysiatools.com/es/tools/invert-object): Invierte claves y valores con lodash _.invert
- [Lista de claves heredadas](https://elysiatools.com/es/tools/keys-in-list): Lista claves propias e heredadas con lodash _.keysIn
- [Lista de claves](https://elysiatools.com/es/tools/keys-list): Lista claves propias con lodash _.keys

## Ejemplos

- [Muestras Avanzadas de Grafana](https://elysiatools.com/es/samples/grafana-samples): Muestras comprensivas de Grafana cubriendo diseño avanzado de dashboards, configuración de alertas, integración de fuentes de datos y desarrollo de plugins
- [Ejemplos de Códigos QR](https://elysiatools.com/es/samples/qrcode-samples): Imágenes de códigos QR de muestra para probar herramientas de lectura y generación de códigos QR
- [Ejemplos D3.js Data Visualization](https://elysiatools.com/es/samples/d3js-data-visualization): Ejemplos completos de visualización de datos D3.js incluyendo gráficos, mapas, animaciones y visualizaciones interactivas
- [Ejemplos de Rome Toolchain JavaScript](https://elysiatools.com/es/samples/rome): Ejemplos de toolchain JavaScript de Rome incluyendo configuración, linting, formatting, bundling y gestión de proyectos
