, поэтому я застрял в этой проблеме на несколько дней:
Мой вклад такой:
"255,255,255,10,251,91,31,4,220,220,220,1"
Это строка с 3 различными значениями RGB, которые также идут с числом, указывающим, что их количество изменяется от самого высокого до самого низкого.
Вы можете перевести строку сверху на:
"RED1, GREEN1, BLUE1, QUANTITY1, RED2, GREEN2 ... "
Пока 1 обозначает первый цвет, а 2 - второй и т. Д.
Мне нужно вернуть первый цвет без его количества.
Поэтому мой вывод должен выглядеть так:
"255,255,255,251,91,31,220,220,220"
Я пробовал разные вещи, вот одна из них:
var firstC, secondC, thirdC;
var pointer = "firstC";
function getEachColorValue(color) {
var startIndex = 0;
var endIndex = 0;
for (var i = 0; i < color.length; i++) {
if (color.charAt(i) == ",") {
endIndex = i;
if (pointer == "firstC") {
firstC = color.substring(startIndex, endIndex);
startIndex = endIndex + 1;
pointer = "secondC";
} else if (pointer == "secondC") {
secondC = color.substring(startIndex, endIndex);
startIndex = endIndex + 1;
pointer = "thirdC";
} else if (pointer == "thirdC") {
thirdC = color.substring(startIndex, endIndex);
startIndex = endIndex;
pointer = "firstC";
}
}
}
}
Это выдвигает RED1
в firstC
, GREEN1
в secondC
и BLUE1
в thirdC
Я подумал сделать это один раз, использовать функцию для записи firstC, secondC, thirdC в массив, сбрасывать их. Затем нарежьте col3
на подстроку без первого цветового поддона, затем повторите.
// Global variables
var stringHolder;
var newString;
var counter = 0;
var colorSetHT = new Array;
// main
createSubstring(col3);
function createSubstring(color) {
var startIndex = 0;
var endIndex = 0;
for (var i = 0; i < color.length; i++) {
if (color.charAt(i) == ",") {
counter++;
endIndex = i;
}
if (counter == 4) {
stringHolder = color.substring(startIndex, endIndex);
alert(stringHolder);
newString = color.substring(endIndex+1, color.length);
getEachColorValue(stringHolder);
colorSetHT.push(firstC, secondC, thirdC)
colorReset();
counter = 0;
stringHolder = "";
// createSubstring(newString); // ?
}
}
}
Я пробовал это, но пока не повезло. Я даже пытался сделать это рекурсивно.
Я новичок в Javascript (на самом деле делаю это для Extendscript), я думаю, что есть способ проще, работать с split/slice
, но я пока не смог найти его. Я постарался сделать его как можно более простым и быстрым для чтения, пожалуйста, дайте мне знать, если я могу предоставить какую-либо дополнительную информацию, заранее спасибо!