2016-12-06 109 views
1

我是Javascript新用户。我想创建一个函数,它将采用十六进制颜色代码,并将其转换为rgb(xx,xx,xx)。 我的代码被发现下面javascript十六进制颜色转换成rgb函数

function my(a){ 
var first = a[1] + a[2]; 
var second = a[3] + [4]; 
var third = a[5] + a[6]; 
var res = [first,second,third]; 
for(var i = 0; i <res.length; i++){ 
res[i] = parseInt(res[i],16); 
} 
return res; 
} 

第一和第三阵列元件,不同之处第二阵列元件正确地转换。我不明白为什么,有谁能告诉我为什么?

+0

指数从0开始,而不是1个 – manonthemat

+0

@manonthemat但实际情况并非六角开始''#?因此索引0处的元素不是数字。 –

+0

那么'a'是'#ccdd11'形式的字符串呢?那么,那是有道理的。 – manonthemat

回答

1

您在分配second时遇到了拼写错误。你有a[3] + [4],当它应该是a[3] + a[4]。在JavaScript数组

function my(a) { 
    var first = a[1] + a[2]; 
    var second = a[3] + a[4]; 
    var third = a[5] + a[6]; 
    var res = [first,second,third]; 
    for(var i = 0; i < res.length; i++){ 
     res[i] = parseInt(res[i],16); 
    } 
    return res; 
} 
+0

非常感谢你的时间 – user6787493