下面,您可以看到这两个日志的输出。第一行代码清楚地显示了我试图访问的属性的完整对象,但在下一行代码中,我无法使用配置访问它。Col_id_3(见截图中的“undefined”?)有人能解释一下吗?我也可以访问除field_id_4之外的所有其他属性。
console.log(config);
console.log(config.col_id_3);
这就是这些行在控制台中打印的内容
下面,您可以看到这两个日志的输出。第一行代码清楚地显示了我试图访问的属性的完整对象,但在下一行代码中,我无法使用配置访问它。Col_id_3(见截图中的“undefined”?)有人能解释一下吗?我也可以访问除field_id_4之外的所有其他属性。
console.log(config);
console.log(config.col_id_3);
这就是这些行在控制台中打印的内容
当前回答
我今天在React中遇到了类似的问题。最终意识到问题是由尚未确定的状态引起的。我正在调用user.user.name,尽管它显示在控制台中,但我似乎无法在我的组件中访问它,直到我包含了一个检查来检查是否user.name。设置用户,然后调用User . User .name。
其他回答
没有一个JSON stringify/parse对我有用。
formValues.myKey: undefined
formValues.myKey with timeout: content
我想要formValues的值。myKey是什么技巧是setTimeout 0,就像下面的例子。希望能有所帮助。
console.log('formValues.myKey: ',formValues.myKey);
setTimeout( () => {
console.log('formValues.myKey with timeout: ', formValues.myKey);
}, 0 );
我遇到过这样的问题,发现解决方案与Underscore.js有关。我最初的日志记录毫无意义:
console.log(JSON.stringify(obj, null, 2));
> {
> "code": "foo"
> }
console.log(obj.code);
> undefined
我还通过查看对象的键找到了解决方案:
console.log(JSON.stringify(Object.keys(obj)));
> ["_wrapped","_chain"]
这让我意识到obj实际上是一个围绕对象的Underscore.js包装器,最初的调试对我撒谎了。
我今天也遇到了同样的问题。在我的例子中,键是嵌套的,即key1.key2。 我使用split()分割键,然后使用方括号符号,这对我来说很有效。
var data = {
key1: {
key2: "some value"
}
}
我把键分开并像这样使用它,data[key1][key2]为我做了这项工作。
我刚刚从MongoDB使用Mongoose加载文档时遇到了同样的问题。
原来,我使用属性find()只返回一个对象,所以我把find()改为findOne(),一切都为我工作。
解决方案(如果您正在使用Mongoose):确保只返回一个对象,这样您就可以解析它的对象。Id或者它将被视为数组所以你需要像访问对象[0]。Id那样访问它。
这可能会帮助某人,因为我有一个类似的问题,其中JSON.parse()返回一个对象,我可以在console.log()上打印,但我无法访问特定的字段,上述解决方案都不适合我。比如使用JSON.parse()和JSON.stringify()的组合。
var jsonObj = JSON.parse(JSON.stringify(responseText))
// where responseText is a JSON String returned by the server.
console.log(jsonObj) ///Was printing the object correctly
console.log(jsonObj.Body) /// Was printing Undefined
我最终通过使用ExtJs Ext.decode()提供的不同解析器来解决这个问题;
var jsonObj = Ext.decode(responseText)
console.log(jsonObj.Body) //Worked...