时间:2016-07-12 13:43:09

标签: javascript arrays

我有一个有4种颜色的数组。

EX:

var c1 = getColor();
var c2 = getColor();
var c3 = getColor();
var c4 = getColor();

function geraColor()
{
    var colors = ['#3498db', '#8e44ad', '#e67e22', '#1abc9c'];
    //Return each value only once
}

我有一份教师名单,每位教师都有一个符合其学科的子列表 像这样:Professor and Disciplines

每次我点击教授时,每次点击教授的名字,我都会在我的日历中添加这些学科(Alreay Done)。

我需要帮助的是:我需要为每位教授单击/展开生成一种独特的颜色(随机或不随机)。

Obs:我有4位教授的限制,所以我只需要生成4种颜色 Obs2:每次我再次点击一位教授,关闭他的学科。我需要再次使用这种颜色。

2 个答案:

答案 0 :(得分:1)

AFA我理解你的问题,也许这就是你想要实现的目标:

var colors = ["red", "green", "yellow", "orange", "blue", "pink"];
var defaultColor = "black";

function getRndColor() {
  var size = colors.length;
  var rnd = Math.floor(Math.random() * size);
  return colors.splice(rnd, 1)[0];
}

function getColor(elem) {
  var color = defaultColor;
  if (elem.checked) {
    color = getRndColor();
  } else {
    colors.push(elem.parentElement.style.color);
  }
  elem.parentElement.style.color = color;
  console.log(colors);
}
<span><input type="checkbox" onclick="getColor(this)"/>Get Random Color</span>

<span><input type="checkbox" onclick="getColor(this)"/>Get Random Color</span>
<br/>
<span><input type="checkbox" onclick="getColor(this)"/>Get Random Color</span>

<span><input type="checkbox" onclick="getColor(this)"/>Get Random Color</span>
<br/>

答案 1 :(得分:0)

只是管理一个记住教授颜色的词典:

var profColors = {};

function getColor(profName){ //profId would be better
  if (!profColors[profName])
    profColors[profName] = getRandomColor(); // or nor random...
  
  return profColors[profName];
}

但是,不确定我明白你想要实现的目标......