我已经使用chartjs实现了折线图,每次加载图表时,都会生成随机颜色,但是如何为backgroundColor and borderColor
数据集看起来像,
var data = [{
label: "records",
data: [2, 4 ,20,10],
fill: false,
backgroundColor: this.generateColor(),
borderColor: this.generateColor(),
borderWidth: 1
},{
label: "amount",
data: [100, 200, 500,50],
fill: false,
backgroundColor: this.generateColor(),
borderColor: this.generateColor(),
borderWidth: 1
}
}]
generateColor = () => {
var letters = '0123456789ABCDEF';
var color = '#';
for (var i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
预期:borderColor和backgroundColor应该相同
但是如果由于某些原因您不想这样做,那么可以创建一个对象工厂函数:
const buildObj = obj => {
const color = generateColor();
const o = { ...obj, backgroundColor: color, borderColor: color };
return o;
}
然后调用它来生成新对象:
const mappedData = data.map(o => buildObj(o))
现在每个对象将具有唯一的颜色,但是每个对象的backgroundColor
和borderColor
将相同。