更改和分配没有副作用的对象

use*_*627 24 javascript

我目前有以下代码:

var myArray = [];
var myElement = {
  id: 0,
  value: 0
}

myElement.id = 0;
myElement.value = 1;
myArray[0] = myElement;

myElement.id = 2;
myElement.value = 3;
myArray[1] = myElement;
Run Code Online (Sandbox Code Playgroud)

问题是,当我改变的价值id,并value为我的第二个元素,值也在第一元素来改变.有没有一种方法可以继续添加新元素而不更改数组中先前插入的值的值?

ken*_*eiv 75

试试这个:

var myArray = [];

myArray.push({ id: 0, value: 1 });
myArray.push({ id: 2, value: 3 });
Run Code Online (Sandbox Code Playgroud)

或者这不适合你的情况?


Ric*_*asi 16

这是构造函数的教科书案例:

var myArray = [];

function myElement(id, value){
    this.id = id
    this.value = value
}

myArray[0] = new myElement(0,1)
myArray[1] = new myElement(2,3)
// or myArray.push(new myElement(1, 1))
Run Code Online (Sandbox Code Playgroud)