javascript - 为什么我的 Math.random 函数总是返回相同的值?
问题描述
我正在做一个石头、纸、剪刀的游戏,电脑会随机选择玩家。我创建了一个函数,它将随机选择一个数字(0、1 或 2),然后根据该数字返回一个石头、纸或剪刀的值。结果,我只能得到“纸”。
function getComputerChoice() {
Math.floor(Math.random() * 3);
if (0) {
return 'rock';
}
else if (1) {
return 'paper';
}
else if (2) {
return 'scissors';
}
}
console.log(getComputerChoice());
Expected: 0, 1, or 2
Actual result: always 1
解决方案
你正在做Math.floor(Math.random() * 3)
,但随后丢弃了结果。然后在您的if
陈述中,您正在测试数字是否0
为真(不是),然后是数字是否1
为真(它是),因此总是返回纸张。要修复它,您需要将随机数保存到变量中,然后将该变量与if
语句中的可能数字进行比较。
推荐阅读
- c# - MemoryStream 没有向文件写入任何内容
- javascript - 如何从函数组件传递状态,以便可以在 use-Context 中使用它
- spring - 在状态字段上,(弹簧)状态机如何比 if/else 更好?
- java - 为什么spring websocket应用看不到html并抛出404错误?
- python - Dash:如何使用模式匹配回调实现动态数量的图形组件
- javascript - 从 html 表中的特定行获取值并作为 json 数组获取
- racket - 有没有办法只为特定的包安装球拍文档
- python - 为什么 Dart 和 Python 之间的 base85 不匹配?
- database - 如何使用循环任务实现数据管道?
- arrays - 无法使用 phpBB 3.3 的请求类获取复选框数组