我是编程新手,目前正在使用 JavaScript。我正在尝试使用 for 循环来模拟掷骰子。该程序可以工作,但输出每次在生成的数字后都会输出 undefined 。我不知道是什么导致了未定义的输出。
我解决了一些错误,但我没想到会在输出中看到未定义的内容。 **以下是我的程序:**
function rollDie () {
roll = Math.floor(Math.random () * 6) + 1;
return console.log (roll);
};
// use a for loop to emulate multiple dice being thrown.
let num = 4;
for (let i=1; i <= num; i++) {
console.log (rollDie());
};
我得到的输出如下:
6
undefined
6
undefined
2
undefined
4
undefined
您记录了两次,一次在函数内部,一次在 for 循环中。函数内的日志正在记录数字,但随后您将从函数返回
undefined
,因此第二个日志就是该 undefined
。
有问题的线路是这一行:
return console.log(roll)
当您调用
console.log
时,它会将值打印到控制台,但随后返回 undefined
。然后您将立即返回该undefined
。如果你把它分成两行,也许会更清楚一点,你不会返回roll
:
const resultOfLog = console.log(roll);
return resultOfLog; // resultOfLog is `undefined`
如果你想继续记录两次,我建议如下:
console.log(roll);
return roll;
如果你只想记录一次,你可以从函数中删除console.log,这意味着你只需这样做:
return roll;