【问题标题】:how to find specific key in object using chrome console?如何使用 chrome 控制台查找对象中的特定键?
【发布时间】:2017-01-02 16:43:17
【问题描述】:

这可能是一个巨大的新手问题,但我不知道。

我正在使用带有调试器的 chrome inspect 来检查我的 JS。现在我正在使用带有标记对象的 gmaps。当我在 chrome 控制台中打开一个对象以显示对象键时,会有很长的列表,其中包含许多不同的子键。

问题是子键太多,几乎不可能找到我的特定键。

如何轻松搜索特定(自定义)键的所有键?是否有某种搜索功能可用于查找特定键及其路径,以便我可以在我的 JS 中调用它?

【问题讨论】:

  • 如果您右键单击该对象,应该有一个菜单选项,上面写着“在命令行中使用”或类似内容。
  • 您可以尝试在控制台中运行JSON.stringify(foo)。这会将您的对象作为字符串。您可以将字符串复制到您的编辑器(或像jsonformatter.curiousconcept.com 这样的在线 JSON 格式化程序),然后 CTRL+F 为您的自定义键。
  • 如果我使用 JSON.stringify 我得到'未捕获的类型错误:将循环结构转换为 JSON'
  • 控制台中的简单foo["SomeKey"]console.dir(foo["SomeKey"]) 应该可以吗?
  • 问题不在于我无法访问属性。问题是我找不到钥匙。有 15 个键,每个 15 个子键,每个 15 个子键等等等等。我的自定义键隐藏在某个地方(但我什至不确定)。我不能手动遍历所有的键,因为那会花费太长时间。

标签: javascript google-chrome google-chrome-devtools


【解决方案1】:

您可以尝试使用下面的简单代码转储对象。然后在您的 chrome 浏览器上点击“ctrl+J”以调出控制台并右键单击“LOG”部分并将日志文件保存到文本编辑器中,然后慢慢从那里进行审查。

for (var key in gmapObject) {
    console.log('The key is ' + key + ' and the value is =' + value + '.');
}

实际上你不应该为了找东西而转储对象。

您可能想查看 google map api 页面。 https://developers.google.com/maps/documentation/javascript/3.exp/reference

例如,如果您在标记中查找某些内容,那么您应该使用标记 gmap 对象提供的 API 来使用实际 API 转储值。例如,如果您想知道标记的坐标,则类似于

marker.getPosition().toString()

参考: https://developers.google.com/maps/documentation/javascript/3.exp/reference#Marker

【讨论】:

  • 我真的不知道要使用 api 文档的哪一部分,因为它不是预设键。我向标记添加了一个名为 category 的自定义键(我什至不确定它是否有效)。我在标记对象上找不到类别键(但它可能隐藏在一百万个其他键中,所以我只是想找出是否有一种简单的方法可以找到我的键)
  • 您是如何设置类别的?你在使用 Marker 的 set API 吗?注意 Marker 扩展了 google.maps.MVCObject,它提供了一对 set 和 get API。我相信如果你使用 set() 方法,你应该能够使用 get() 来检索。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-23
  • 1970-01-01
  • 2017-04-23
  • 2012-02-26
  • 2022-06-25
  • 2011-05-27
相关资源
最近更新 更多