【发布时间】:2019-02-22 17:17:17
【问题描述】:
在我的项目中,我希望我的数组每 5 秒增加一次。我尝试使用 setInterval 调用一个函数来执行此操作,但它每 5 秒重置一次我的数组,数量增加而不是自然增长。有没有办法增加数量而不必每次都重置数组?
这些是我用来称呼我的“植物”的函数:
var myPlants = new Array();
var plantSpawn = 0;
function createPlants() {
reproducePlants();
setInterval(reproducePlants, 5000);
}
function reproducePlants() {
plantSpawn += 5;
for(var i=0; i<plantSpawn; i++){
var rr = Math.round(Math.random() * 150);
var gg = Math.round(Math.random() * 255);
var bb = Math.round(Math.random() * 150);
var plant = new Object();
plant.x = Math.random() * canvas.width;
plant.y = Math.random() * canvas.height;
plant.rad = 2;
plant.skin = 'rgba('+rr+','+gg+','+bb+', 1)';
myPlants[i] = plant;
}
}
【问题讨论】:
-
目前它每次都会更新已经存在的植物。如果您只想添加 5 个新元素,请运行
for循环 5 次 (i < 5) 并使用myPlants.push(plant)
标签: javascript arrays canvas