我是 JavaScript 新手,我有这段代码试图生成随机背景颜色,它实际上有效,但颜色标题未对齐
const color = ["red", "green", "yellow", "blue"];
let header = document.getElementById("header");
let container = document.getElementById("container");
function flip() {
container.style.backgroundColor = color[getRandomColor()];
header.textContent = color[getRandomColor()];
}
function getRandomColor() {
for (let i = 0; i < color.length; i++) {
return Math.floor(Math.random() * color.length);
}
}
我在没有
for loop
的情况下尝试过,但没有任何效果
这就是生成随机数的事情......它是随机的。所以它可能不会连续两次出现相同的数字。
每次调用
getRandomColor()
时,它都会返回一个随机数。 (顾名思义,不是随机颜色。)你调用它两次:
container.style.backgroundColor = color[getRandomColor()];
header.textContent = color[getRandomColor()];
考虑到数组的长度,这两个函数调用只有 25% 的机会导致在该数组中选择相同的索引。
如果您只想要一个随机数,请调用函数once并使用结果值两次:
const randomIndex = getRandomColor();
container.style.backgroundColor = color[randomIndex];
header.textContent = color[randomIndex];
顺便说一句...
我在没有 for 循环的情况下尝试过,但没有任何效果
您的
for
循环没有做任何有意义的事情,因为您已经保证它只会通过从该迭代返回来迭代一次。您也可以将其删除:
function getRandomColor() {
return Math.floor(Math.random() * color.length);
}