javascript - 如何初始化对象数组

标签 javascript

以下 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/

相关文章:

javascript - MD5 字符串无法使用 html() 正确显示

javascript - 关闭并让关键字产生意外结果

javascript - 具有相同引用的多个元素,React

javascript - 异步功能意外行为

javascript - 使用 Object.assign 或类似的扩展数组而不是覆盖数组的模式

javascript - 将 BN 转换为数字

javascript - “受限” HTML textarea/所见即所得编辑器?

javascript - jquery ajax请求如何获得成功?

javascript - 将 div 包裹在 img 宽度周围并保持 div 100% 高

javascript - 在 AngularJS 中更改 DOM 元素的位置