Tengo un objeto que contiene múltiples propiedades. Para una lista dada de accesorios en un tercer objeto, quiero 'mover' las propiedades del objeto original y colocarlas en un nuevo objeto.
Tengo una forma 'manual' de hacer esto en este momento, algo como lo siguiente. Sin embargo, esto crea 2 objetos nuevos, en lugar de simplemente 'mover' algunas de las claves:
let pets = { 'cat': {}, 'dog': {}, } let animals = { 'cat': 'black', 'dog': 'white', 'whale': 'blue', 'albatross': 'grey', } let aPet = {} let notAPet = {} for (let [key, val] of Object.entries(animals)) { if (key in pets) { aPet[key] = val } else { notAPet[key] = val } } ¿Hay una manera más "corta" de lograr lo anterior, preferiblemente solo creando aPet mientras que animals terminan siendo equivalentes a notAPet ?
Puede usar el operador de eliminación :
let pets = { 'cat': {}, 'dog': {}, } let animals = { 'cat': 'black', 'dog': 'white', 'whale': 'blue', 'albatross': 'grey', } let aPet = {} let notAPet = {} for (let [key, val] of Object.entries(animals)) { if (key in pets) { aPet[key] = val delete animals[key] } } console.log(aPet, animals)