我有一个背景,每次单击按钮时都会随机更改颜色。是否可以确保每次单击的颜色都不相同(避免同一颜色连续生成2-3次)? .js文件的源代码如下(HTML基本上只是按钮)。

var bgcolorlist, btn;
function newColor() {
    bgcolorlist = '#'+Math.floor(Math.random()*16777215).toString(16);
    document.body.style.backgroundColor = bgcolorlist;
}
function initAll() {
    btn = document.getElementById('click1');
    btn.addEventListener('click', newColor, false);
}
initAll();

最佳答案

请尝试以下操作:

var bgcolorlist, btn;
var colorList = [];
function newColor() {
  bgcolorlist = '#'+Math.floor(Math.random()*16777215).toString(16);
  while(colorList.indexOf(bgcolorlist) != -1){
    bgcolorlist = '#'+Math.floor(Math.random()*16777215).toString(16);
  }
  colorList.push(bgcolorlist);
  document.body.style.backgroundColor = bgcolorlist;
}
function initAll() {
  btn = document.getElementById('click1');
  btn.addEventListener('click', newColor, false);
}
initAll();

09-19 17:08