我是 JavaScript 新手,我有这段代码试图生成随机背景颜色

问题描述 投票:0回答:1

我是 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
的情况下尝试过,但没有任何效果

javascript
1个回答
0
投票

这就是生成随机数的事情......它是随机的。所以它可能不会连续两次出现相同的数字。

每次调用

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);
}
© www.soinside.com 2019 - 2024. All rights reserved.