J'ai ce for qui génère une série. Le problème principal est que je n'ai que 9 couleurs.

for (let i = 0; i < dataZCsv.length; i++) {
    let colorNumber = i;
    if (colorNumber > 8) {

    }
    let dataBlok = {
        name: nazvyZCsv[i],
        data: dataZCsv[i],
        visible: jednaStopaTF,
        regression: hodnoty.trendy,
        regressionSettings: {
            type: 'polynomial',
            color: Highcharts.getOptions().colors[i --> colorNumber],
            dashStyle: 'ShortDot',
            name: " ",
            hideInLegend: true
        }
    };
    serie.push(dataBlok);
    serie[0].visible = true;
};

Ainsi, même si i dépasse 8, il commencera à écrire i supérieur à 8 dans color: Highcharts.getOptions().colors[i] et c'est un problème. Je n'ai que 9 couleurs. Je dois donc le faire quand il dépasse 8, il recommence à compter à partir de 0. Mais i doit encore l'utiliser dans d'autres variables (name: nazvyZCsv[i], data: dataZCsv[i]), où il doit être jusqu'à la valeur maximale ( dataZCsv.length).

Idéalement, je créerais une variable distincte pour le numéro de couleur colorNumber, qui, lorsqu'il atteint 8, recommence de 0 à la fin de dataZCsv.length.

Quelque chose comme:

let colorNumber = i;
if (colorNumber > 8) {
    colorNumber = 0;
    colorNumber++;
}

Ou:

let colorNumber = i;
if (colorNumber > 8) {
    colorNumber = 0;
    for (let j = 0; j < dataZCsv.length - 9; j++) {
        colorNumber + j;
    }
}

Mais cela ne fonctionne pas dans for

Je suis bloqué depuis plusieurs heures et je ne vois toujours pas de solution. Pouvez-vous m'aider s'il vous plaît?

0
Dominik Lev 17 avril 2020 à 22:19

2 réponses

Meilleure réponse

Vous pouvez simplement utiliser des couleurs [i% 9] où 9 est le nombre de couleurs

2
d3bgger 17 avril 2020 à 19:23

Vous pouvez prendre le reste de l'index avec la longueur du tableau de couleurs (opérateur de rappel %).

let colors = Highcharts.getOptions().colors;

Plus tard dans l'objet

color: colors[i % colors.length]

Vous devez vous séparer pour obtenir un tableau et obtenir une valeur, si vous pouviez obtenir un nombre arbitraire de couleurs qui n'est peut-être pas connu à l'avance.

2
Nina Scholz 17 avril 2020 à 19:49