这是我编写的代码,即使我在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()来解决此问题,您应该会很好。

07-25 21:55