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(谢谢!钥匙不存在,因为在那个循环中我的钥匙在值中,钥匙是非常小的数字。