2016-12-06 77 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

相關問題