以下 p5js 代码不起作用,因为数组中的对象是花的引用,我如何用不同的值初始化对象?
var flowers;
var flower;
function setup()
{
createCanvas(1000,500);
base_x = width/2;
base_y = height - 50;
flowers = [];
flower = {
base_x: 0,
base_y: height - 50,
stem_h: 100,
col: color(255,50,50)
}
for(var i = 0; i < 10; i++)
{
flower.base_x = i * 100;
flower.stem_h = random(50,400);
flower.col = color(
random(0,255),
random(0,255),
random(0,255)
);
flowers.push(flower);
}
}
最佳答案
您可以通过以下三种方法中的任何一种在将花对象插入数组之前取消引用:
行 flowers.push(flower);
应该是
flowers.push(Object.assign({}, flower));
或
flowers.push({...flower});
或
flowers.push(JSON.parse(JSON.stringify(flower)));
关于javascript - 如何初始化对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59573505/