在JS Map中,是否可能拥有多个键产生相同的结果,而不必编写所有的键?
例如:
const mp = new Map<number, string>([
[2 || 4, 'even'],
[1 || 3, 'odd']
]);
这个不起作用,但我正在寻找类似的东西来避免使用冗长繁琐的switch case。
在JS Map中,是否可能拥有多个键产生相同的结果,而不必编写所有的键?
例如:
const mp = new Map<number, string>([
[2 || 4, 'even'],
[1 || 3, 'odd']
]);
这个不起作用,但我正在寻找类似的东西来避免使用冗长繁琐的switch case。
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()])
是否可以在JS Map中拥有多个键提供相同的结果,而无需编写所有这些键?
不行。Map是键和值之间的1:1连接。如果您想要两个不同的键具有相同的值,则需要在Map中创建两个条目。
switch
做的任务是什么?(它可能不是一个奇偶检查,这可以很容易地在没有映射的情况下完成。) - Teemu