JavaScript 颜色数组

标签 javascript arrays random

我观看了一个 codecademy 视频,但无法随机化我的颜色阵列。颜色不是随机的。我不确定我做错了什么。

    function getRandomColor() {
    var color;
    var colorArray = [
        "#FF6633",
        "#FFB399",
        "#FF33FF",
        "#FFFF99",
        "#00B3E6",
        "#E6B333",
        "#3366E6",
        "#999966",
        "#809980",
        "#E6FF80",
        "#1AFF33",
        "#999933",
        "#FF3380",
        "#CCCC00",
        "#66E64D",
        "#4D80CC",
        "#FF4D4D",
        "#99E6E6",
        "#6666FF"
    ];
    for (var i = 0; i < colorArray; i++) {
        color = colorArray[Math.floor(Math.random() * colorArray.length)];
    }
    return color;
}

最佳答案

我不知道你为什么需要 for 循环,但我很确定这是错误的。

问题是什么?

在您的例子中,循环将不会执行,因为 colorArray(在条件中)不是数字。您可能想改用 colorArray.length,但在这种情况下循环也没有意义。

选择一种随机颜色

如果您只想选择一种颜色,您可以将整个循环(和return 语句)替换为:

return colorArray[Math.floor(Math.random() * colorArray.length)];

这只会返回一种随机颜色。

随机播放

如果你想打乱整个数组,你可以使用下面的循环:

for (var i = 0; i < colorArray.length; i++) {
    let r=Math.floor(Math.random() * colorArray.length);
    color = colorArray[r];
    colorArray[r]=colorArray[i];
    colorArray[i]=color;
}

关于JavaScript 颜色数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60361877/

相关文章:

javascript - 在一个有序的标量数组中,给定一个数字,找到前面较小的和后面较大的。

php - 将对象添加到数组 - 覆盖而不是添加

php - 两个数组对一个分块

c++ - 随机数函数 (C++11)

c - boolean 数据类型 随机整数

javascript - 如何使用 load-grunt-config 将参数传递给外部文件中定义的 grunt 任务?

javascript - multipart/form-data - 手动获取文件信息

c++ - 为什么数组参数被视为 const 数组?

bash - 我如何使用 Bash 从字符串/数组中选择一个随机字符?

javascript - 如何在 Cypress 中执行条件语句