填充数组时遇到问题

Jor*_*dyV 0 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;
Run Code Online (Sandbox Code Playgroud)

当我用第一个物体提醒时alert(objects[0].id),它说3.再一次,我在这里想念的是什么?

Roc*_*mat 7

这是因为您将同一个对象推入数组中的每个点.你需要每次都做新的.

var objects = [];

objects[0] = {id: 1};
objects[1] = {id: 2};
objects[2] = {id: 3};
Run Code Online (Sandbox Code Playgroud)

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

var objects = [
    {id: 1},
    {id: 2},
    {id: 3},
];
Run Code Online (Sandbox Code Playgroud)


小智 5

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

object.id = 1;
objects[0] = object;
object = {};
Run Code Online (Sandbox Code Playgroud)