Operaciones con objetos

<< Herencia Módulos >>

Desestructuración de objetos

Al igual que sucede con los arrays, también es posible desestructurar objetos (extraer parejas propiedad:valor). El funcionamiento es similar a desestructurar un array, pero usamos llaves '{ }' en lugar de corchetes.

let usuario = {
    id: 3,
    nombre: "Pedro",
    email: "peter@gmail.com"
}

let {id, nombre, email} = usuario;
console.log(nombre); // Imprime "Pedro"

// Se pueden asignar variables con nombres diferentes a los atributos
let {nombre: nombreUsuario, email: emailUsuario} = usuario;
console.log(nombreUsuario); // Imprime "Pedro"

// Esta función recibirá un objeto como primer parámetro y lo desestructurará en variables
function imprimirUsuario({id, nombre, email}, otraInfo = "Nada") {
    // Cuerpo de la función
}

otraInfo(usuario, "Es muy listo");

Spread de objetos

Podemos utilizar el operador spread '...' con objetos para clonar objetos, o crear nuevos objetos combinando las propiedades de 2 o más objetos. Cuando hay propiedades repetidas en ambos objetos, el valor del último objeto prevalece.

function configGame(options) {
    let defaults = {
        name: "Player 1",
        level: 1,
        difficulty: "normal",
        gender: "female"
    };

    let config = {...defaults, ...options}; // Combinamos el objeto defaults con options
    console.log(config);
}

let options = {
    name: "Super Master",
    gender: "male"
};
configGame(options); // {name: "Super Master", level: 1, difficulty: "normal", gender: "male"}

<< Herencia Módulos >>