Todos estos tres objetos tienen exactamente las mismas propiedades y valores. ¿Hay alguna forma de simplificar el código y hacerlo más corto?
const MyMap = { 'myObject': { propone: 'One', proptwo: 'Two', propthree: 'Three' }, 'yourObject': { propone: 'One', proptwo: 'Two', propthree: 'Three' }, 'hisObject': { propone: 'One', proptwo: 'Two', propthree: 'Three' } };Puede almacenar el objeto en su propia variable y distribuirlo en MyMap :
const innerObject = { propone: 'One', proptwo: 'Two', propthree: 'Three', }; const MyMap = { myObject: { ...innerObject }, yourObject: { ...innerObject }, hisObject: { ...innerObject } }; console.log(MyMap); .as-console-wrapper { max-height: 100% !important; top: auto; }O para algo que permita una mayor flexibilidad en los nombres de las variables:
const innerObject = { propone: 'One', proptwo: 'Two', propthree: 'Three', }; const propNames = ['myObject', 'yourObject', 'hisObject']; let MyMap = propNames.reduce((a, c) => { a[c] = { ...innerObject }; return a; }, {}); console.log(MyMap); .as-console-wrapper { max-height: 100% !important; top: auto; }Con aún más simplicidad como lo sugiere Matt Morgan :
const MyMap = propNames.reduce((a, c) => ({...a, [c]: {...innerObject}}), {});