我正在尝试创建一个包含四个数组的数组。 这四个数组中的每一个都由三个数字组成,其中两个是从一组数字中随机分配的。
当我运行以下代码时,我没有收到错误,但我也没有得到结果。
我错过了什么?
我真的不需要在console.log中打印出来,这只是为了检查数组是否构造正确
var x = -2;
function createEnemy(){
var yArray = [60,145,230];
var speedArray = [30,45,55,60];
var randY = Math.floor(Math.random() * yArray.length);
var randSpeed = Math.floor(Math.random() * speedArray.length);
var enemy = [yArray[randY], speedArray[randSpeed], x];
}
function printEnemies()
{
var allEnemies = [];
(function setEnemies()
{
allEnemies.push(createEnemy());
allEnemies.push(createEnemy());
allEnemies.push(createEnemy());
allEnemies.push(createEnemy());
}());
for(var j in allEnemies)
{
for(var p in allEnemies[j] )
{
for(var i = 0; i < allEnemies[j][p].length; i++ )
{
console.log(allEnemies[j][p][i]);
}
}
}
}
printEnemies();
答案 0 :(得分:4)
您忘记退回enemy
:)
function createEnemy() {
var yArray = [60,145,230];
var speedArray = [30,45,55,60];
var randY = Math.floor(Math.random() * yArray.length);
var randSpeed = Math.floor(Math.random() * speedArray.length);
var enemy = [yArray[randY], speedArray[randSpeed], x];
return enemy;
}
答案 1 :(得分:1)
确保您从$('body').css(...);
返回一些内容:
createEnemy
此外,您可能更喜欢这种循环之类的东西,而不是您已实施的嵌套方式:
return [yArray[randY], speedArray[randSpeed], x];
答案 2 :(得分:1)
看起来你错过了一个回归的敌人&#39;来自createEnemy函数,你有一个不必要的三级循环。这里有一些修改过的行(为了便于阅读,有一些缩进更新)。
<强> CODE 强>:
var x = -2;
function createEnemy() {
var yArray = [60,145,230];
var speedArray = [30,45,55,60];
var randY = Math.floor( Math.random() * yArray.length );
var randSpeed = Math.floor( Math.random() * speedArray.length );
var enemy = [yArray[randY], speedArray[randSpeed], x];
return enemy; // Added a return of the enemy.
}
function printEnemies() {
var allEnemies = [];
( function setEnemies() {
allEnemies.push(createEnemy());
allEnemies.push(createEnemy());
allEnemies.push(createEnemy());
allEnemies.push(createEnemy());
}()
);
for(var j in allEnemies) {
for(var p in allEnemies[j] ) {
console.log (allEnemies [j][p] ); // Removed additional depth of loop
}
}
}
printEnemies();