gpt4 book ai didi

javascript - console.log 未显示预期的对象属性

转载 作者:可可西里 更新时间:2023-11-01 09:13:45 24 4
gpt4 key购买 nike

我的 node.js 应用程序中有以下 javascript 代码。但是,某些对象并未存储在我的变量 appointment 中。即使我设置了它们,当我直接访问它们时它也能正常工作:console.log(appointment.test);

我在这段代码中做错了什么?

var appointment = {
subscribed: false,
enoughAssis: false,
studentSlotsOpen: false
};
console.log(appointment);
for (var key in appointmentsDB[i]) {
appointment[key] = appointmentsDB[i][key];
}

appointment.test= "res";

console.log(appointment.test);
console.log(appointment);

这是生成的输出:

{ subscribed: false,
enoughAssis: false,
studentSlotsOpen: false }
res
{ comment: 'fsadsf',
room: 'dqfa',
reqAssi: 3,
maxStud: 20,
timeSlot: 8,
week: 31,
year: 2013,
day: 3,
_id: 51f957e1200cb0803f000001,
students: [],
assis: [] }

变量 console.log(appointmentsDB[i]) 看起来像:

{ comment: 'fsadsf',
room: 'dqfa',
reqAssi: 3,
maxStud: 20,
timeSlot: 8,
week: 31,
year: 2013,
day: 3,
_id: 51f957e1200cb0803f000001,
students: [],
assis: [] }

以下命令:

console.log(Object.getOwnPropertyNames(appointmentsDB[i]), Object.getOwnPropertyNames(Object.getPrototypeOf(appointmentsDB[i])));

显示:

[ '_activePaths',
'_events',
'errors',
'_maxListeners',
'_selected',
'_saveError',
'_posts',
'save',
'_pres',
'_validationError',
'_strictMode',
'isNew',
'_doc',
'_shardval' ] [ 'assis',
'timeSlot',
'db',
'_schema',
'id',
'base',
'day',
'collection',
'reqAssi',
'constructor',
'comment',
'year',
'room',
'students',
'week',
'_id',
'maxStud' ]

不过,我希望我最后的输出也提供条目 test、subscribed、enoughAssis 和 studentSlotsOpen。这段代码有什么问题?

我找到的解决方案是手动复制我想要的元素。

最佳答案

你可能有一个 Document object而不是一个普通的对象。那些有一个自定义 toJSON method它只产生你的模式和 _id 的属性,但没有别的。如果您将带有 for-in-loop 的方法复制到 appointment 对象上,它在记录时也会以不同的方式序列化。

尝试

for (var key in appointmentsDB[i].toObject()) {
appointment[key] = appointmentsDB[i][key];
}

appointment.test= "res";

console.log(appointment);

关于javascript - console.log 未显示预期的对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17978731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com