【发布时间】:2020-08-22 11:57:11
【问题描述】:
componentToHex 函数适用于第一个组件 r,但对于其他两个组件 g 和 b,它无法按预期工作:
let componentToHex = (val) => {
const a = val.toString(16);
return a.length === 1 ? "0" + a : a;
};
let rgbToHex = (rgb) => {
const hex = rgb.replace("rgb(", "").replace(")", "").split(",");
const r = hex[0];
const g = hex[1];
const b = hex[2];
return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
}
console.log(rgbToHex ('rgb(1,255,148)'));
【问题讨论】:
-
val是一个字符串值。您必须先将其转换为数字,否则toString(16)不会将其转换为十六进制值(它只会按原样返回值)。 -
可能是因为您将 val 作为字符串而不是数字传递给 componentToHex?
标签: javascript hex rgb color-scheme color-conversion