我有以下實現,它的工作原理和功能。我正在檢查以下javascript對象中的fname
屬性是否相同,然後爲這些配對對象分配相同的顏色。色譜優化
這裏是一個JavaScript對象樣本:
{"value": 10,"series": 1,"category": "LG","fname": "","valueColor": ""},
不過,我想在給定的fiddle使用更尊貴的顏色,而不是非常相似的顏色,例如,顏色幾乎都是綠色頻譜。此外,我不希望給任何顏色值,其中value
屬性等於0
這裏的核心是實現
function colorSpectrum(N) {
var colorMap = [], inc = 50, start = 1000;
for (i = start; i < start+N*inc; i+=inc) {
var num = ((4095 * i) >>> 0).toString(16);
while (num.length < 3) {
num = "0" + num;
}
colorMap.push("#" + num);
}
return colorMap;
}
function process(data){
var map = {}, colorMap = colorSpectrum(data.length);
data.forEach(function(item, index){
if(!map.hasOwnProperty(item.fname)){
map[item.fname] = colorMap[index];
}
data[index].valueColor = map[item.fname];
});
return data;
}
不知道我明白什麼是問題。你能解釋得更好嗎?也許只是表明你想達到什麼目的。 – Shomz
@Shomz,我想爲每個javascript對象分配更多尊貴的顏色。我目前的實施確實將顏色從白色擴展到黑色。 – hotspring
考慮使用HSL更容易得到一個很好的調色板http://www.w3.org/wiki/CSS/Properties/color/HSL – Plato