我观看了一个 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/