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