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
)为数字
您忘了将分量转换为number
,因此将它们作为string
传递给componentToHex
,这需要一个number
。
尝试一下-