有没有一种方法可以将对象放置在数组中的两个不同位置并使它们具有不同的值?

时间:2019-06-09 15:54:12

标签: javascript

我正在用JavaScript制作一个小游戏来帮助我学习它。该游戏基于一组图块,每个图块具有不同的值。

开始时,它将对象放入每个单元格,然后继续到下一个单元格,更改值。

它总是显示最后一个单元格的属性。有什么办法可以使单元格具有不同的值而又不制造大量不同的对象?

很抱歉,如果不清楚。我对JavaScript非常陌生。

2 个答案:

答案 0 :(得分:0)

您不必担心对象,几乎没有方法声明数组并使用它。您可以遵循JavaScript doucemntation

如果您对文档不满意,可以使用一些数组示例来了解值更改和对象更改。

  1. JavaScript数组:Explained with uses in different components
  2. JavaScript Pass By Value And Pass By Reference In JavaScript
  3. JavaScript数组-tips, tricks and examples

如果您在下面有任何问题评论。

答案 1 :(得分:0)

我认为您正在将相同的对象一遍又一遍地推入数组。使用spread运算符实质上可以在更改所需值的同时克隆对象。

const array = []
const obj = { a: 5, b: 6 };

array.push(obj);
array.push(obj);
obj.b = 8;

array.push({ ...obj, b: 10 })

console.log(array[0], array[1], array[2]);

如您所见,obj.b=8同时影响数组的第一个和第二个元素,因为它们都引用同一对象。但是由于散布(...)运算符正在克隆对象,因此只有最后一个元素具有b=10