javascript-destructuracion-objetos

Destructuración de colecciones en javascript

La desestructuración de objetos es una característica de JavaScript que permite extraer propiedades de un objeto y asignarlas a variables de forma individual.

Con la desestructuración, podemos acceder rápidamente a las propiedades de un objeto sin necesidad de usar múltiples líneas de código (lo que simplifica mucho el código).

Es muy útil a la hora de trabajar con datos complejos, como los objetos anidados, o los que obtenemos como respuestas a APIs.

Sintaxis básica

La desestructuración de objetos utiliza llaves ({}) para extraer las propiedades del objeto y asignarlas a variables. La clave de cada propiedad debe coincidir con el nombre de la variable.

La sintaxis básica es la siguiente:

const objeto = {
  propiedad1: 'valor1',
  propiedad2: 'valor2'
};

const { propiedad1, propiedad2 } = objeto;

En este ejemplo, las variables propiedad1 y propiedad2 se asignan a las propiedades correspondientes del objeto objeto.

Vamos a verlo con un ejemplo

const producto = { nombre: "Ordenador", precio: 1000 };
const { nombre, precio } = producto;

console.log(nombre); // "Ordenador"
console.log(precio); // 1000

Nombres personalizados

Si necesitas usar un nombre de variable distinto al de la propiedad, puedes renombrarlas al momento de la desestructuración.

const producto = { nombre: "Ordenador", precio: 1000 };
const { nombre: nombreProducto, precio: costo } = producto;

console.log(nombreProducto); // "Ordenador"
console.log(costo); // 1000

Valores por defecto

También podemos asignar valores predeterminados a los valores. Si la propiedad no existe en el objeto, se usará el valor por defecto.

const producto = { nombre: "Ordenador" };
const { nombre, precio = 500 } = producto;

console.log(nombre); // "Ordenador"
console.log(precio); // 500

En este ejemplo, como la propiedad precio no existe en el objeto, se asigna el valor predeterminado 500 a la variable precio.

Objetos anidados

Cuando las propiedades están anidadas dentro de objetos, puedes desestructurarlas de manera jerárquica.

const usuario = {
  id: 1,
  perfil: { nombre: "Ana", edad: 30 },
};

const {
  perfil: { nombre, edad },
} = usuario;

console.log(nombre); // "Ana"
console.log(edad); // 30

Uso en funciones

La desestructuración también se puede aplicar directamente en los parámetros de las funciones.

function imprimirPropiedades({ propiedad1, propiedad2 }) {
  console.log(propiedad1);
  console.log(propiedad2);
}

const objeto = {
  propiedad1: 'valor1',
  propiedad2: 'valor2'
};

imprimirPropiedades(objeto);

En este ejemplo,

  • Se pasa el objeto objeto a la función imprimirPropiedades
  • Ahí se desestructuran las propiedades propiedad1 y propiedad2 del objeto y se imprimen.

También se pueden usar en los objetos que devuelve una función.

function obtenerDatos() {
  return { nombre: "Mario", edad: 33 };
}

const { nombre, edad } = obtenerDatos();

console.log(nombre); // "Mario"
console.log(edad);   // 33

Este ejemplo muestra cómo desestructurar directamente el valor devuelto por una función en nombre y edad.

Ejemplos prácticos