JavaScript新手求助:getComputerChoice函数返回null问题解决
问题分析与解决:computerSelection总是返回null的原因
你的代码里有两个关键逻辑错误,导致结果不符合预期:
随机索引生成错误
Math.random()返回的是0到1(不包含1)的浮点数,Math.floor(Math.random())会把这个数向下取整,结果永远是0。所以choice的值固定为choices[0],也就是字符串"Rock"。数组索引使用错误
数组只能通过数字索引访问元素,你用字符串"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是3Math.floor():将上述浮点数向下取整,得到0、1、2中的一个有效索引- 直接返回
choices[randomIndex],就能随机获取数组中的Rock、Paper或Scissors选项
内容的提问来源于stack exchange,提问作者user23372941
相关产品推荐
相关产品推荐

