是否存在可将多个非嵌套键映射至单一值的JavaScript结构?
实现多键映射到单值的JavaScript方案
当然可以实现这种需求,最直接的方式是利用普通对象或Map,将每个需要映射的键单独关联到同一个值,以下是具体实现方式:
1. 使用普通对象(适合字符串/符号类型的键)
直接为每个键赋值相同的目标值,操作简单且访问高效:
const keyMap = { a: 1, b: 1, c: 2, d: 2, e: 2 }; console.log(keyMap["d"]); // 输出 2
2. 使用Map(支持多种键类型)
如果需要支持非字符串类型的键(比如数字、对象),或者需要动态批量添加映射,Map是更灵活的选择:
const keyMap = new Map(); // 批量为一组键绑定同一个值 ["a", "b"].forEach(key => keyMap.set(key, 1)); ["c", "d", "e"].forEach(key => keyMap.set(key, 2)); console.log(keyMap.get("d")); // 输出 2
3. 封装辅助函数简化定义
如果需要更清晰地分组管理键和对应的值,可以封装一个工具函数:
function createMultiKeyMap(mappings) { const map = new Map(); mappings.forEach(([keys, value]) => { keys.forEach(key => map.set(key, value)); }); return map; } // 使用示例 const myMap = createMultiKeyMap([ [["a", "b"], 1], [["c", "d", "e"], 2] ]); console.log(myMap.get("d")); // 输出 2
内容的提问来源于stack exchange,提问作者user310291
相关产品推荐
相关产品推荐

