У меня есть переменная с именем colorHM:
var colorHM = "50,50,74,255,100,255,4,3,50".
Теперь я использую этот фрагмент здесь, чтобы разрезать его на части по следующей схеме: R,g,b,R,g,b,R,g,b
, и снова до var a = R,g,b
и var b = R,g,b
и т. Д. *
var firstColorHM = colorHM.split(",", 3);
firstColorHM = firstColorHM.toString();
var firstColorHMA = firstColorHM.split(",");
firstCMA.push(firstColorHMA[0]);
firstCMA.push(firstColorHMA[1]);
firstCMA.push(firstColorHMA[2]);
Но использование его для вычисления distance = eDist(firstCMA, firstCTA)
дает мне NaN
.
function eDist (col1, col2) {
var rmean = ((col1[0] + col2[0]) / 2);
var dR = (col1[0] - col2[0]);
var dG = (col1[1] - col2[1]);
var dB = (col1[2] - col2[2]);
return Math.sqrt((2 + (rmean / 256)) * Math.pow(dR, 2) + (4 * Math.pow(dG, 2)) + ( 2 + ((255- rmean) / 256)) * Math.pow(dB, 2));
}
Использование firstCMA.push(10); firstCMA.push(20); firstCMA.push(30);
вместо firstCMA.push(firstColorHMA[0]);..
заставляет его работать снова.
Переменная firstCTA
опущена, но проанализирована таким же образом.
Я просто проверил, работают ли массивы, пытаясь вызвать разные индексы из массива, что сработало.
Почему нажатие цифр работает, а нажатие firstColorHMA[0]
- нет?
Заранее спасибо!