for循环调用函数;输出有效,但也显示未定义

问题描述 投票:0回答:1

我是编程新手,目前正在使用 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
javascript function for-loop output undefined
1个回答
0
投票

您记录了两次,一次在函数内部,一次在 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;
© www.soinside.com 2019 - 2024. All rights reserved.