Я сделал для цикла, который делает точки. Теперь я хочу покрасить их определенным образом. Как первые 200 черные, а следующие 326 синие. Я уже справился с этим, но теперь у меня так много строк кода, и мне интересно, есть ли более чистый способ сделать это. Например, сделать массив для цветов, а затем сделать массив для значений?

let circleColor = 'Lavender ';
const secondColor = 'burlyWood ';
const numberFirstColor = 493;
const numberSecondColor = numberFirstColor+578;
for (let i = 0; i < circleCount; i++) {
if (i > numberFirstColor) circleColor = secondColor;
if ( i > numberSecondColor) circleColor= thirdColor;
0
hvid kanin 29 Май 2019 в 15:05

2 ответа

Лучший ответ

Вы можете сохранить массив объектов, а затем повторить это:

 for(const { color, count } of [{ color: "Lavender", count: 200 }, { color: "burlyWood", count: 326 } /*..*/]) {
   for(let i = 0; i < count; i++) {
     circleColor = color;
     //...
   }
 }
4
Jonas Wilms 29 Май 2019 в 12:26

Другой, более функциональный способ - создать массив, а затем заполнить его цветами:

Array(circleCount)
  .fill()
  .map((_, idx) => idx < numberFirstColor ? circleColor : secondColor);

Затем вы можете перебрать свой массив и получить цвет для вашего элемента.

1
Harijs Deksnis 29 Май 2019 в 12:13
56360248