Is it possible to have multiple keys giving the same result in a JS Map, without having to write all of them ?
const mp = new Map<number, string>([ [2 || 4, 'even'], [1 || 3, 'odd'] ]);
This does not work but I am looking for something similar to avoid a switch case which is very verbose
You can write your own helper to transform a less verbose input into the more verbose one which
new Map() expects:
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()])