【发布时间】:2021-03-15 10:54:27
【问题描述】:
我们有 A-z 字符和 abcdef0-9 颜色。
我需要在同一个单词上始终使用相同的颜色,(苹果始终是红色,汽车始终是绿色,汽车-始终是橙色)-即使单词有 1 或 3 个字母,我也希望每次都看到相同的颜色。 在我的函数中,如果没有数学颜色的字母,我有随机函数。
请帮我升级功能并将数学随机替换为 get letter index in alphabet divide on colors char position 或其他内容
export function MakeSenseColor(str) {
if(!str && typeof str !== 'string') return '';
const chars1 = 'abc6789';
const chars2 = 'abcdef0123456789';
const Digits = 'qйwцeуrкtеyнuгiшoщpзaхsъdфfыgвhаjпkрlоzлxдcжvэbяnчmсмитьбю1234567890';
const splittedStr = str.split('').map((s,i,arr) => {
const charPos = s && (Digits.split('')).indexOf(`${s}`.toLowerCase());
if(!charPos || charPos === -1) return '0';
if (charPos >= 0 ) {
const char = (charPos * chars2.length) / Digits.length
const charColor = (char * 6) / arr.length;
return chars2[parseInt(charColor)];
}
return '0';
});
let color = '#';
for (let i = 0; color.length < 7; i++) {
const add = splittedStr[i%6] || chars1.charAt(Math.floor(Math.random() * chars1.length))
color = color + add;
}
return color;
}
【问题讨论】:
标签: javascript math random colors