此代码中的选项数组发生了什么变化



我知道计算机正在从选项数组生成随机选项,但由于某种原因,我看不到原始选项数组的连接。是更改了选项数组还是创建了另一个引用?我就是不明白。

const choices = ['rock', 'paper', 'scissors'];
let userChoice;
let computerChoice;
const generateComputerChoice = () => {
const randomChoice = choices[Math.floor(Math.random() * choices.length)];
computerChoice = randomChoice;
computerChoiceDisplay.innerHTML = 'Computer choice: ' + computerChoice;
};

choices数组中只有相同的数组,相同的内存地址,完全相同的东西

CCD_ 2表示";对...进行求值,得到choices的第N个索引(N=...的值(";

在这种情况下,它说:

  • 获取0到1之间的随机十进制数
  • 乘以选择数
  • 楼层编号(2.9=>2等(
  • 在数组中获取索引

你也可以这样写:

const generateComputerChoice = () => computerChoiceDisplay.innerHTML = 'Computer choice: ' + ['rock', 'paper', 'scissors'][Math.floor(Math.random() * ['rock', 'paper', 'scissors'].length)];

另一种写法是:

const choices = ['rock', 'paper', 'scissors'];
const generateComputerChoice = () => {
let randomFloatingPoint = Math.random();
let randomDecimalFrom0To3 = randomFloatingPoint * choices.length;
let randomIndex = Math.floor(randomDecimalFrom0To3)
const randomChoice = choices[randomIndex];
computerChoiceDisplay.innerHTML = 'Computer choice: ' + randomChoice;
};

相关内容

  • 没有找到相关文章

最新更新