将数字字符串加载到数字数组的问题

时间:2017-06-23 17:06:54

标签: javascript

我遇到了将点击框的背景颜色加载到rgb数组的问题。

正如您所看到的那样,当我使用rgb1 = color.split(",");这个创建字符串数组时,如

[
  "49",
  " 133",
  " 155"
]

所以我尝试将项目解析为类似rgb2 = parseInt(color.split(","));的int,但现在我正在返回时获得49

您可以告诉我如何将结果导出为

  

[49,133,155]



 $(".box").on("click", function () {

  color = $(this).css("background-color").substring(4).slice(0,-1);

  rgb1 = color.split(",");
  rgb2 = parseInt(color.split(","));
  
  console.log(color);
  console.log(rgb1);
  console.log(rgb2);
  
});

.box{
    height:30px;
    width:30px;
    background:#31859B;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box"></div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

您可以使用仅与数字部分匹配的正则表达式。然后将字符串转换为数字。

&#13;
&#13;
var color = "49, 133, 155",
    parts = color.match(/\d+/g).map(Number);

console.log(parts);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$(".box").on("click", function () {

  color = $(this).css("background-color").substring(4).slice(0,-1);

  rgb1 = color.split(",");
  rgb2 = [];

  for (var i = 0; i < rgb1.length; i++) {
    rgb2[i] = parseInt(rgb1[i]);
  }
  console.log(rgb2);
  
});
.box{
    height:30px;
    width:30px;
    background:#31859B;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box"></div>