Tengo un objeto así:
const obj = { a: 1, b: 2, c: 3, d: 4, e: 5 }Quiero crear múltiples objetos literales a partir de él. Asi que:
const obj1 = { a: 1, b: 2 } const obj2 = { c: 3, d: 4, e: 5 }¿Es posible lograr esto usando una asignación de destrucción de objetos?
Algo como:
const { {a, b}: obj1, {c, d, e}: obj2} = obj;¿Es posible lograr esto usando la asignación de desestructuración de objetos?
No, no es posible. Sin embargo, puede escribir una función para dividir un objeto por sus nombres de propiedad en varios objetos como este:
function splitObject (obj, ...propertyGroups) { return propertyGroups.map(group => { const o = {}; for (const key of group) o[key] = obj[key]; return o; }); } const obj = { a: 1, b: 2, c: 3, d: 4, e: 5, }; const [obj1, obj2] = splitObject(obj, ['a', 'b'], ['c', 'd', 'e']); console.log({obj, obj1, obj2});Al devolver los subobjetos en una tupla, tiene la libertad de desestructurarlo, nombrando cada uno según sus preferencias.