Sal*_*aif 2 javascript arrays random
这是我写的代码,我不知道为什么所有50 rgbColor都生成相同的值,即使我在randomRGBValue中编写随机函数.
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);
Run Code Online (Sandbox Code Playgroud)
为了便于理解我糟糕的书面代码,
- > randomValue函数用于生成1到255(3组)的随机值,并被推入valueArr.valueArr被返回.
示例valueArr =(value1,value2,value3)
- > randomRGB函数调用randomValue函数并将valueArr值插入颜色数组.
小智 6
你的问题是你永远不会重置你的valueArr- 你不断变得越来越大.但是在您的randomRGB()函数中,您始终可以访问数组的前三个元素.
你可以通过添加var valueArr = []你的randomValue()函数内部来解决这个问题,你应该没问题.