有没有办法将对象放在数组中的两个不同位置并让它们具有不同的值?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我正在使用JavaScript制作一个小游戏来帮助我学习它。游戏基于一系列瓷砖,每个瓷砖都有不同的值。

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

它始终显示最后一个单元格的属性。有没有什么方法可以让细胞有不同的价值而不会产生大量不同的物体?

对不起,如果问题不明确。我是JavaScript的新手。

提问于
用户回答回答于

我认为你一遍又一遍地将同一个对象推入数组中。使用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影响数组的第一个和第二个元素,因为它们都指向同一个对象。但是由于spread(...)运算符正在克隆对象,因此只有最后一个元素具有b=10

用户回答回答于

扫码关注云+社区

领取腾讯云代金券