JavaScript 颜色数组

cs.*_*ent 2 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;
}
Run Code Online (Sandbox Code Playgroud)

dan*_*1st 6

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

问题是什么?

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

选择一种随机颜色

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

return colorArray[Math.floor(Math.random() * colorArray.length)];
Run Code Online (Sandbox Code Playgroud)

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

洗牌

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

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;
}
Run Code Online (Sandbox Code Playgroud)