下面,您可以看到这两个日志的输出。第一行代码清楚地显示了我试图访问的属性的完整对象,但在下一行代码中,我无法使用配置访问它。Col_id_3(见截图中的“undefined”?)有人能解释一下吗?我也可以访问除field_id_4之外的所有其他属性。

console.log(config);
console.log(config.col_id_3);

这就是这些行在控制台中打印的内容


当前回答

我也有同样的问题。我的解决方案是使用字符串化输出作为解析JSON的输入。这对我很管用。希望对你有用

var x =JSON.parse(JSON.stringify(obj));
console.log(x.property_actually_now_defined);

其他回答

我也有类似的问题,或者只是相关的问题。

对于我的情况,我正在访问一个对象的属性,但其中一个是未定义的。我发现问题是在服务器端代码的空白,而创建的关键,对象的val。

我的方法是这样的……

在从创建对象的服务器端代码中删除空白之后,我现在可以像下面这样访问属性了…

这可能不是主题问题的问题,但对我来说是这样,对其他人来说可能也是这样。希望能有所帮助。

我今天也遇到了同样的问题。问题是由uglify-js引起的。在我执行了相同的非丑陋代码后,问题得到了解决。删除的

--mangle-props

从uglify-js中编写丑陋的代码就足够了。

也许,最好的做法是为那些必须被uglify-js的regex规则破坏的属性使用一些前缀。

来源如下:

var data = JSON.parse( content);
...
this.pageIndex = parseInt(data.index);
this.pageTotal = parseInt(data.total);
this.pageLimit = parseInt(data.limit); 

它是这样被丑化的:

var n = JSON.parse( t);
...
this._ = parseInt(n.index), this.g = parseInt(n.total), this.D = parseInt(n.C)

console.log(anObject)的输出是误导性的;通过单击>展开控制台中显示的对象树,显示的对象的状态才会解析。当你console.log对象时,它不是对象的状态。

相反,尝试console.log(object .keys(config)),甚至console.log(JSON.stringify(config)),您将看到调用console.log时的键或对象的状态。

您将(通常)发现在console.log调用之后添加了键。

我刚刚从MongoDB使用Mongoose加载文档时遇到了同样的问题。

原来,我使用属性find()只返回一个对象,所以我把find()改为findOne(),一切都为我工作。

解决方案(如果您正在使用Mongoose):确保只返回一个对象,这样您就可以解析它的对象。Id或者它将被视为数组所以你需要像访问对象[0]。Id那样访问它。

我今天在React中遇到了类似的问题。最终意识到问题是由尚未确定的状态引起的。我正在调用user.user.name,尽管它显示在控制台中,但我似乎无法在我的组件中访问它,直到我包含了一个检查来检查是否user.name。设置用户,然后调用User . User .name。