碰到一个需要给图表上数据打颜色的场景,我希望对于同一个名字的数据每次出来的颜色都是一样的,于是想了半分钟,搞出了这么个方案
“`javascript
function strToRGB(name){
let sum=0;
for(let s of name)sum+=s.codePointAt(0);
return [sum%128,sum%126,sum%124];
}
“`
原理是把每一个字符的unicode值累加起来,然后对这个和分别取3个余数。
除数选1到256都可以,选多少取决于希望结果出现在哪个范围,我这里为了让结果颜色偏暗,所以选了128左右的除数。