Javascript 地图中的一个值可能有多个键?如果没有,怎么做?

Javascript 地图中的一个值可能有多个键?如果没有,怎么做?,javascript,Javascript,我试图找出是否有一种方法可以在javaScript的映射中为一个值设置多个键。Mozilla上的应用程序似乎不建议这样做,所以我不确定。例如,我以字符串的形式从用户处获取输入,我希望将该字符串与具有相同名称的匹配对象相匹配。亚历山大是其中一个物体的名字。然而,我也希望“alex”或“ali”是可接受的输入。在下面的当前表单中,只有“alexander”与alexander对象匹配。如果无法使用映射实现这一点,我想知道一种好方法,可以将用户字符串输入与对象名称进行匹配,而不需要使用一堆If语句(可

我试图找出是否有一种方法可以在javaScript的映射中为一个值设置多个键。Mozilla上的应用程序似乎不建议这样做,所以我不确定。例如,我以字符串的形式从用户处获取输入,我希望将该字符串与具有相同名称的匹配对象相匹配。亚历山大是其中一个物体的名字。然而,我也希望“alex”或“ali”是可接受的输入。在下面的当前表单中,只有“alexander”与alexander对象匹配。如果无法使用映射实现这一点,我想知道一种好方法,可以将用户字符串输入与对象名称进行匹配,而不需要使用一堆If语句(可能有些名称有几十个昵称)

我想你想要

const personByKey = new Map([
  ["john", john],
  ["alexander", alexander],
  ["alex", alexander],
  ["wesley", wesley]
]);
我想你想要

const personByKey = new Map([
  ["john", john],
  ["alexander", alexander],
  ["alex", alexander],
  ["wesley", wesley]
]);

我认为您需要一个主查找字典,其中包含映射到密钥的所有可能昵称,以便在personByKey映射中使用

let nicknameMap = {
  "alex": "alexander",
  "al": "alexander",
  "alexander": "alexander",
  "john": "john",
  "j-dog": "john"
   "al": "alexander",
}

var person = personByKey[nicknameMap["al"]];

我认为您需要一个主查找字典,其中包含映射到密钥的所有可能昵称,以便在personByKey映射中使用

let nicknameMap = {
  "alex": "alexander",
  "al": "alexander",
  "alexander": "alexander",
  "john": "john",
  "j-dog": "john"
   "al": "alexander",
}

var person = personByKey[nicknameMap["al"]];

哦,很简单,我从没想过。谢谢哦,很简单,我从没想过。谢谢