Javascript 使用密钥访问JS对象

Javascript 使用密钥访问JS对象,javascript,Javascript,我可以访问类似于driver.my_friends[“793659690”]的值。name但现在我在循环中使用它,其中键将持有该键 驱动程序。我的朋友[key]。name不起作用。表示未定义和驱动程序。我的朋友[“key”]。name将查找名为key的密钥。那么我该如何使用它,以便对变量的变量也进行求值。driver.my_friends[key].name是正确的方法。驱动程序中可能不存在类似于键的键。我的朋友=)和/或该对象中不存在.name 您可以非常轻松地调试: console.log(

我可以访问类似于
driver.my_friends[“793659690”]的值。name
但现在我在循环中使用它,其中
键将持有该键


驱动程序。我的朋友[key]。name
不起作用。表示未定义和
驱动程序。我的朋友[“key”]。name
将查找名为key的密钥。那么我该如何使用它,以便对变量的变量也进行求值。

driver.my_friends[key].name
是正确的方法。
驱动程序中可能不存在类似于
键的键。我的朋友
=)和/或该对象中不存在
.name

您可以非常轻松地调试:

console.log(driver.my_friends[key]);
console.log(driver.my_friends[key].name);

甚至IE8也有这样的控制台。

当您迭代对象的属性时,一些“垃圾”可能会进入“key”变量。我建议如下:

for (var key in driver.my_friends) {
  if (key && driver.my_friends[key] && driver.my_friends[key].name) {
    // Do what you need here
  }
}

另外,请确保设置driver.my_friends[key]的值时,该键与读取该值时使用的键相同。my_friends[key].name应该可以工作,因此很可能您迭代的任何
key
都不存在。请尝试自己调试其他数据或提供更多相关代码。
driver.my_friends[key]。name
正确。我的猜测是
被设置为错误的值。请看一个有效的例子。@mVChr@lonesomeday谢谢!你是对的,逻辑错误X(谢谢!钥匙不存在,因为在那个循环中我的钥匙在值中,钥匙是非常小的数字。