笔试遇到的rgba转16进制,但透明度不需要加到里面

题目大概:将输入的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()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值