这是我编写的代码,即使我在randomRGBValue中编写了随机函数,我也不知道为什么所有50个rgbColor都生成相同的值。
var html = '';
var valueArr = [];
var rgbColor;
function randomValue() {
for (var i = 0; i < 3; i += 1) {
valueArr.push(Math.floor(Math.random() * 256 ));
}
return valueArr;
}
function randomRGB() {
randomValue();
var color;
color = 'rgb(';
color += valueArr[0] + ',';
color += valueArr[1] + ',';
color += valueArr[2] + ')';
return color;
}
for (var i = 0; i < 50; i += 1) {
rgbColor = randomRGB();
html += '<div style="background-color:' + rgbColor + '"></div>';
}
document.write(html);
为了减轻对我糟糕的书面代码的理解,
-> randomValue函数用于生成1到255(3组)之间的随机值,并将其推入valueArr。返回valueArr。
示例valueArr =(值1,值2,值3)
-> randomRGB函数调用randomValue函数,并将valueArr值插入颜色数组。
最佳答案
您的问题是您永远不会重置valueArr
-不断扩大它。但是在randomRGB()
函数中,您始终访问数组的前三个元素。
您可以通过在var valueArr = []
函数内部添加randomValue()
来解决此问题,您应该会很好。