JavaScript 如何将rgb()颜色字符串转换为对象

JavaScript 如何将rgb()颜色字符串转换为对象

给定一个以rgb()或rgba()形式表示的颜色,并且任务是将其转换为一个对象,其中键是颜色名称,值是颜色值。

示例:

Input:    rgb(242, 52, 110)
Output : {
   red: 242,
   green: 52,
   blue: 110
}

Input:    rgba(255, 99, 71, 0.5)
Output: {
  red: 255,
  green: 99,
  blue: 71,
  alpha: 0.5
}

过程: 为了实现这一目标,我们采用以下方法。

  • 将颜色存储在名为rgb的变量中。
  • 创建一个名为colors的数组,包含红色、绿色、蓝色和alpha的颜色名称。
  • 创建一个变量colorArr,其中存储输入rgb的颜色值。例如: [“255”, “99”, “71”, 0.5], 我们使用 slice 从rgb字符串中截取出 “(““)” 之间的部分。现在你得到了字符串 “255, 99, 71, 0.5”。 现在从 “, ” 处分割数组。现在你得到了数组 [“255″, ’99”, “71”, “0.5”]。
  • 现在创建一个空对象。
  • 对colorArr应用forEach循环,对于每次迭代,将颜色的名称和颜色的值插入对象中。
  • 现在打印该对象。
<script> 
let rgb = "rgba(255, 99, 71, 0.5)"
  
let colors = ["red", "green", "blue", "alpha"] 
  
// Getting the index of "(" and ")"  
// by using the indexOf() method 
let colorArr = rgb.slice( 
    rgb.indexOf("(") + 1,  
    rgb.indexOf(")") 
).split(", "); 
  
let obj = new Object(); 
  
// Insert the values into obj 
colorArr.forEach((k, i) => { 
    obj[colors[i]] = k 
}) 
  
console.log(obj) 
</script> 

输出:

{
alpha: "0.5",
blue: "71",
green: "99",
red: "255"
}

将逻辑封装在一个函数中

<script> 
function rgbToObj(rgb) { 
  
    let colors = ["red", "green", "blue", "alpha"] 
  
    let colorArr = rgb.slice( 
        rgb.indexOf("(") + 1,  
        rgb.indexOf(")") 
    ).split(", "); 
  
    let obj = new Object(); 
  
    colorArr.forEach((k, i) => { 
        obj[colors[i]] = k 
    }) 
  
    return obj; 
} 
  
  
console.log(rgbToObj("rgb(255, 99, 71)")) 
console.log(rgbToObj("rgb(255, 99, 71, 0.5)")) 
</script>

输出:

{
blue: "71",
green: "99",
red: "255"
}

{
alpha: "0.5",
blue: "71",
green: "99",
red: "255"
}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程