This question already has an answer here:
- Javascript pushing objects into array changes entire array 7 answers
When I run this code:
var e = {
'id': 0,
'name': 'n'
};
var data = [];
for (var i = 0; i < 3; i++) {
e.id = i;
data.push(e);
}
console.log(data);
I expect data
to look like this:
[
{
'id': 0,
'name': 'n'
},
{
'id': 1,
'name': 'n'
},
{
'id': 2,
'name': 'n'
}
]
but the actual result is:
[
{
'id': 2,
'name': 'n'
},
{
'id': 2,
'name': 'n'
},
{
'id': 2,
'name': 'n'
}
]
Why does this happen and how to fix this?