javascript - JavaScript 试图读取对象在控制台上给我 undefined
问题描述
我正在尝试读取我拥有的一些数据。
我的控制台显示它看起来像这样:
{
"calls":"0",
"ids":[
{
"id":"5117-9e39-7afd-46b3-a066-14e4-3433-871f",
"feat":{
"dates":{
"exp":"2018-10-02"
},
"read":[
{
"name":"Joe"
}
]
}
}
]
}
所以我试图 console.log 所以它给了我这个名字。
我已经这样做了:
console.info(data.ids.read.name)
这是返回undefined。
我怎样才能让它返回名称?
解决方案
根据您的描述,我认为您的问题是由您记录一个对象并记录该对象的特定成员引起的。
console.log 语句将为您提供可以展开的预览,预览显示对象在您记录时的原样。它有时会给您一个扩展它的选项,并且扩展视图将显示对象现在的样子。
当您记录原始值或获得不可扩展的预览时,您将始终看到记录时的对象。
Nikhil 建议从对象记录 JSON 字符串是一个很好的提示,因为您将在记录对象时按原样记录对象(字符串是原始的,不会为您提供扩展选项)。你也可以使用console.table。
下面你可以看到预览和展开的行为和区别(你可以在浏览器的控制台中运行它):
var arr = [];
console.log('empty array?',arr);//previews to [] but expands to array with one object
console.log('undefined wont change',arr[0])//logs undefined because arr is still empty
arr.push({name:'ben'});//mutate array to add one item
您可能正在记录稍后通过解决承诺或回调发生突变的内容。
推荐阅读
- python - 读取python文件并使用输入
- android - 每周、每月和每年测试 Android WorkManager PeriodicWorkRequest
- javascript - 卡在 TypeError:无法读取未定义的属性“价格”
- python - 为什么我的字典没有在函数之外更新?(Python)
- spartacus-storefront - 在产品详细信息页面上显示动态产品信息
- dropzone.js - dropzone.js 有波兰语翻译吗?
- pandas - 使用 Python Pandas 比较具有不同行数的两个 Excel 文件
- asp.net-core - Asp .Net Core Controller 任务超时
- excel - 使用 VBA 在多行中插入验证列表
- git - 恢复 git checkout 丢失的文件(未暂存/提交)