You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript新手求助:getComputerChoice函数返回null问题解决

问题分析与解决:computerSelection总是返回null的原因

你的代码里有两个关键逻辑错误,导致结果不符合预期:

  1. 随机索引生成错误
    Math.random()返回的是0到1(不包含1)的浮点数,Math.floor(Math.random())会把这个数向下取整,结果永远是0。所以choice的值固定为choices[0],也就是字符串"Rock"。

  2. 数组索引使用错误
    数组只能通过数字索引访问元素,你用字符串"Rock"作为索引choices[choice],JavaScript会尝试把字符串转成数字,转失败后得到NaN,访问数组的NaN索引会返回undefined(你看到的null可能是后续逻辑的影响,但核心问题出在这里)。

正确实现代码

let choices = ["Rock", "Paper", "Scissors"];

function getComputerChoice(){
  // 生成0到choices长度-1的随机整数
  const randomIndex = Math.floor(Math.random() * choices.length);
  // 通过随机索引获取对应的选项
  return choices[randomIndex];
}

代码解释

  • Math.random() * choices.length:生成0到3(不包含3)的浮点数,因为choices.length是3
  • Math.floor():将上述浮点数向下取整,得到0、1、2中的一个有效索引
  • 直接返回choices[randomIndex],就能随机获取数组中的Rock、Paper或Scissors选项

内容的提问来源于stack exchange,提问作者user23372941

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 12:23:15