我想要输出的内容:骰子。 dice.rollndice(3(=> [x,x,x]
我知道我的代码的第二部分是错误的,但是我不确定如何修复它或其他要添加的内容。但是我需要致电Rolldie并返回代表卷的数组
rollDie: function() {
return Math.floor(Math.random() * this.sides) + 1;
},
rollNDice: function(n) {
rollDie(var result = [];
for (var i =0,i<=[/1-6/] ;i++)
)
解决方案
我可以告诉您是这种语言的新手。为什么?让我评论您犯的所有错误:(我修复了一些缩进(
rollDie: function() { // Unexpected parenthesis: this is not how you define a
// function. Define a function by doing 'function rollDie()'
return Math.floor(Math.random() * this.sides) + 1; // incorrect method of random
}, // remove comma
rollNDice: function(n) { // Same here: 'function rollNDice(n) {...}'
rollDie(var result = []; // -.-
for (var i =0,i<=[/1-6/] ;i++) // incorrect usage of for statement .-.
// ^ ^
// bad formatting ????? ._.
) // unexpected parenthesis ._.
// missing bracket from rollNDice ._.
我将向您展示for语句的正确用法:
for (var i = 0; i > n i++) { // (var i; while i is greater than n; increment i)
// do stuff
}
现在,我将向您展示如何从1到6中获取一个随机数:
Math.floor((Math.random() * 6) + 1);
几乎在那里。现在,让我们更改Rolldie功能。而不是rolldie:function((...,我将其更改为function rolldie((。意外的括号是由于foo: function()...
。格式为function foo()
。但是您必须是这种语言的新手。
function rollDie() {
return Math.floor((Math.random() * 6) + 1);
}
function rollNDice(n) {
...
}
现在,据我所知,在参数内定义一个变量是不好的做法。或至少,除了(var i ...(以外,我不经常看到它。将结果放在开始:var result = []
。现在用于语句。
for (var i = 0; i > n-1; i++) {
result.push(rollDie()); // result.push(3) returns [3], and if
} // result is [5, 4, 2], result.push(4)
return result // makes it result[5, 4, 2, 4]
它有效!我会告诉你:
function rollDie() {
return Math.floor((Math.random() * 6) + 1);
}
function rollNDice(n) {
var result = ["results:"];
for (var i = 0; i < n; i++) {
result.push(rollDie());
}
return result;
}
console.log(rollNDice(4));
输出:
["result", 6, 1, 6, 5]
;它有效!您的语法都是错误的。
由于rollDie
是属性,因此您必须称其为Dice.rollDie()
。您不会将for
循环放入函数的参数列表中,而是在for循环中调用函数。而且,由于您想返回所有卷的数组,因此需要构建数组。
rollNDice: function(n) {
var dice = [];
for (var i = 0; i < n; i++) {
dice.push(Dice.rollDie());
}
return dice;
}