【发布时间】:2015-07-01 15:06:51
【问题描述】:
当我运行这段代码时:
var e = {
'id': 0,
'name': 'n'
};
var data = [];
for (var i = 0; i < 3; i++) {
e.id = i;
data.push(e);
}
console.log(data);
我希望data 看起来像这样:
[
{
'id': 0,
'name': 'n'
},
{
'id': 1,
'name': 'n'
},
{
'id': 2,
'name': 'n'
}
]
但实际结果是:
[
{
'id': 2,
'name': 'n'
},
{
'id': 2,
'name': 'n'
},
{
'id': 2,
'name': 'n'
}
]
为什么会发生这种情况以及如何解决这个问题?
【问题讨论】:
-
JavaScript 从不复制复合数据结构的赋值。您正在将对该对象的引用推送到数组中。
-
我知道。如何解决?
标签: javascript javascript-objects