题目大概:将输入的rgba输出为一个数组的形式:比如 “rgba(255,255,255,0.5)” 输出成 [“#ffffff”,“0.5”] 的形式
思路:将输入的字符串进行replace操作,替换掉没用的rgba和括号,通过split(“,”),将数子分开成为一个数组,但是这时每一项都是字符串,要通过parseInt进行转化成数字,再通过tostring(16)转化成16进制,这时返回的是一个字符串,判断字符串长度是否为1,如果只有一个字符表明要在前面加上“0”,最后通过+号拼接字符串、代码实现如下
function colorChange(color) {
let arr = color
.replace('rgba(', '')
.replace(")", '')
.split(',')
console.log(arr);
const result =[]
// 这里直接把透明度给到输出的第二个元素
result[1] = arr[3]
result[0] = "#"
for(let i=0;i<3;i++){
let str = parseInt(arr[i]).toString(16)
if(str.length===1)
str = "0"+str
result[0]+=str
}
return result
}
function colorConversion () {
let myHex = colorChange('rgba(11,161,148,0.6)')
console.log(myHex);
}
colorConversion()