Javascript 为循环创建对象并将其推送到数组中
我希望创建一个名为allEnemies的数组,其中包含属于“敌人”类的“bug”。我试图在for循环中完成它,因为稍后将修改var“bug”。问题是,创建的对象“如果我正在创建它们”不会进入数组“allEnmies”。先谢谢你Javascript 为循环创建对象并将其推送到数组中,javascript,arrays,loops,object,Javascript,Arrays,Loops,Object,我希望创建一个名为allEnemies的数组,其中包含属于“敌人”类的“bug”。我试图在for循环中完成它,因为稍后将修改var“bug”。问题是,创建的对象“如果我正在创建它们”不会进入数组“allEnmies”。先谢谢你 var allEnemies = []; var random_speed = function() { return Math.floor(Math.random() * (300 - 80)) + 80; }; var random_y = functio
var allEnemies = [];
var random_speed = function() {
return Math.floor(Math.random() * (300 - 80)) + 80;
};
var random_y = function() {
var postions = [60, 143, 226];
return positions[Math.floor(Math.random() * 3)];
};
var create_enemies = function() {
var bugs = 4;
for (var i = 0; i < bugs; i++) {
var bug = new Enemy();
bug.speed = random_speed();
bug.y = random_y();
bug.x = 0;
allEnemies.push(bug);
}
};
var allEnemies=[];
var random_速度=函数(){
返回Math.floor(Math.random()*(300-80))+80;
};
var random_y=函数(){
var头寸=[60143226];
返回位置[Math.floor(Math.random()*3)];
};
var create_=function(){
var=4;
对于(var i=0;i
演示-
好的,有几件事:
1) 由于您已使用分配给变量的匿名函数声明了for
循环,因此需要通过该变量create\u founders()
调用该函数。没有这一点,您的代码将无法运行
2) 您需要创建一个Ememy构造函数(如果您还没有这样做的话)
3) 您在代码的某个位置拼错了位置
,导致错误
看一看JSFIDLE,让我知道它是否回答了您的问题(FIDLE包含用于跟踪阵列的console.log语句)。敌人的原型在哪里?你在哪里调用
创建敌人()
?这似乎是肯定的-我也非常确定,每当你在变量中使用下划线时,会创建一些敌人。。。贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾贾;)您在var positions=[60143226]中拼写了positions
错误代码>。请参见创建了一个带有空白“敌人”函数的工作小提琴。为了问题的简洁性,他可能只是没有包含敌人
构造函数。我敢打赌,拼写错误才是真正的问题。我认为缺少create\u founders()
调用才是真正的问题。是的,两者都会导致问题,但拼写错误会产生一个错误,这表明问题出在哪里。如果没有调用,代码将不会有任何反馈…它将无法运行。感谢我没有调用,敌人的构造函数已经生成…链接也很好,可以澄清我的其他问题