¿Es posible tener varias claves que den el mismo resultado en un mapa JS, sin tener que escribirlas todas?
Por ejemplo:
const mp = new Map<number, string>([ [2 || 4, 'even'], [1 || 3, 'odd'] ]);Esto no funciona, pero estoy buscando algo similar para evitar un caso de cambio que es muy detallado.
Puede escribir su propio ayudante para transformar una entrada menos detallada en la que espera el new Map() :
const mapReducer = (arr, [keys, val]) => [ ...arr, ...(Array.isArray(keys) ? [...keys.map(key => [key, val])] : [[keys, val]] ) ]; const mp = new Map([ [[2, 4], 'even'], [[1, 3], 'odd'], [0, 'meh...'] ].reduce(mapReducer, [])); console.log([...mp.entries()])¿Es posible tener varias claves que den el mismo resultado en un mapa JS, sin tener que escribirlas todas?
No. Un mapa es una conexión 1:1 entre una clave y un valor. Si desea que dos claves diferentes tengan el mismo valor, eso significa que debe crear dos entradas en el mapa.