JavaScript:Map返回未定义的对象,尽管对象存在

JavaScript:Map返回未定义的对象,尽管对象存在,javascript,angularjs,twitter-bootstrap,Javascript,Angularjs,Twitter Bootstrap,我有个奇怪的问题。我有带对象的Map()。当我尝试使用map.get()方法获取对象时,我收到了“undefined”对象 附件中有非常清楚的解释。为什么X没有定义 提前感谢。您的类型似乎不匹配 console.log( "14" === 14 ); // false 您需要将id转换为一个数字以正确匹配密钥: var id = Number($scope.eventId); // id = 14 // ... var x = mmap.get(id); // x = ["SIGN_

我有个奇怪的问题。我有带对象的Map()。当我尝试使用map.get()方法获取对象时,我收到了“undefined”对象

附件中有非常清楚的解释。为什么X没有定义


提前感谢。

您的类型似乎不匹配

console.log( "14" === 14 ); // false
您需要将
id
转换为一个数字以正确匹配密钥:

var id = Number($scope.eventId); // id = 14

// ...

var x = mmap.get(id);   // x = ["SIGN_UP", "ENABLED"], ...

A将通过严格相等()匹配键,这首先要求值的类型相同

地图中的键似乎是数字:

Map { ..., 14 => ["SIGN_UP", "ENABLED"], ... }
id
是一个字符串:

id = "14"

查看以橙色突出显示的调试器输出。

如果您添加一个代码笔,那就太好了。请将相关代码作为文本而不是图像包含在问题中。您可以使用post editor中的
{}
按钮将其格式化为一个代码块,该按钮有一个快捷键
Ctrl
+
K
,或者在每行前面添加4个空格。我添加图像是因为我想显示调试器中的信息,但您是对的,这不是最佳做法。谢谢Jonathan Lonowski-一切都正常!