填充数组时遇到问题

时间:2014-01-20 18:38:38

标签: javascript

这是非常基本的,但我只是看不到我在这里缺少的东西..

考虑下一个数组objects。它需要填充object个实例,每个实例都有自己的id

var objects= [];
var object= {};

object.id = 1;
objects[0] = object;
object.id = 2;
objects[1] = object;
object.id = 3;
objects[2] = object;

当我使用alert(objects[0].id)警告第一个对象时,它会显示3。 再一次,我在这里失踪了什么?

2 个答案:

答案 0 :(得分:7)

这是因为您正在将相同的对象推送到数组中的每个位置。你需要每次都做新的。

var objects = [];

objects[0] = {id: 1};
objects[1] = {id: 2};
objects[2] = {id: 3};

或者更好的是,只需一次完成:

var objects = [
    {id: 1},
    {id: 2},
    {id: 3},
];

答案 1 :(得分:5)

它将对象保存为引用,因此只要您更改了id,它就会为所有内容更改它。 要解决它,你可以简单地做

object.id = 1;
objects[0] = object;
object = {};