【发布时间】:2020-12-24 15:35:03
【问题描述】:
我正在尝试将属性添加到 Javascript 中的嵌套对象;但是,当我设置属性名称和值时,该属性无法持久化。
populated_post.comments[i].comment.end = true
console.log(typeof(populated_post));
console.log(typeof(populated_post.comments[i].comment));
console.log(populated_post.comments[i].comment);
控制台:
object
object
{
_id: 5f517998dce977a23c10b79a,
post: 5f51718ac691e8a15f28d7de,
sender: {
_id: 5f5170e83e91eaa1580715a0,
username: 'Patrick',
password: 'foobar',
bio: 'Hi, my name is Patrick',
items: [],
inbox: [],
followers: [],
following: [],
contacts: [ [Object] ],
__v: 0,
profile_photo: '80becce309e4c6b02a0e9538559ed932'
},
date: 2020-09-03T23:17:44.028Z,
message: '!',
replies: [
{
comment_id: 5f5261aa5db43fa8d20dd668
}
],
__v: 0
}
据我所知,我正确设置了属性。我在整个应用程序中多次执行此操作,但由于某种原因它在这里不起作用。有什么想法吗?
【问题讨论】:
-
你也可以试试
console.log(populated_post.comments[i].comment.end);吗? -
@Abhilash 它就在那里。控制台输出一个布尔值。当我向客户发送populated_post 时,它不存在。
-
对象有可能被冻结。
const X = Object.freeze({ firstProp: 1, secondProp: "Hi" }); X.third = true;这将默默地阻止属性的变化。 -
@Abhilash 我知道它没有被冻结,因为我可以改变属性。我只是无法添加它们。
-
看起来响应有一个自定义的 toString()。
console.log的 JSON 中没有这些道具
标签: javascript node.js