【问题标题】:JavaScript: Map return undefined object despite object exist [closed]JavaScript:尽管存在对象,但映射返回未定义的对象[关闭]
【发布时间】:2015-12-20 20:38:28
【问题描述】:

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

附件中的解释很清楚。为什么 X 未定义?

提前致谢。

【问题讨论】:

  • 如果你添加一个codepen会很棒。
  • 请在问题中包含相关代码作为文本而不是图像。您可以使用帖子编辑器中的{} 按钮将其格式化为代码块,该按钮的快捷方式为Ctrl+K,或者在每行前面添加4 个空格。
  • 我添加图像是因为我想显示来自调试器的信息,但你是对的,这不是最佳实践。

标签: javascript angularjs twitter-bootstrap


【解决方案1】:

您的类型似乎不匹配。

console.log( "14" === 14 ); // false

您需要将id 转换为数字才能正确匹配密钥:

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

// ...

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

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

Map 中的键似乎是数字:

Map { ..., 14 => ["SIGN_UP", "ENABLED"], ... }

虽然id 是一个字符串:

id = "14"

通过以橙色突出显示的调试器输出。

【讨论】:

  • 感谢 Jonathan Lonowski - 一切正常!
猜你喜欢
  • 2013-09-24
  • 2012-05-27
  • 2020-09-14
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多