【发布时间】:2021-06-04 09:29:15
【问题描述】:
我在数组中存储了一些空对象意味着在数组中存储了一些空对象,其中键值对使用for-loop 生成。
我是这样做的:
var events = [], obj, n = 100;
obj = {
a: 0,
b:{},
"timestamp":new Date()
};
for(var i=0;i<n;i++)
{
events.push(obj);
}
events.forEach((item, i) => {
for(var i=0;i<40;i++)
item.b["trackID"+i] = 0;
});
所以最终的 events 数组变为包含 100 个对象,所有键都初始化为零。
现在我想手动设置任何特定的键,但我面临的问题是所有对象中的所有键都会更新为相同的值,无论我设置哪个键。我只想将值设置为相应的对象键。为什么这里发生了错误?
例如,当尝试设置第 5 个对象时,假设 trackID25 的值 a 和 b 为 5和 7 分别:
events[4].a = 5
events[4].b.trackID25 = 7
但所有事件对象的键 a 和 b(trackID)键分别设置为 5 和 7 值。 为什么会这样????
【问题讨论】:
标签: node.js arrays object arrayobject