Как я могу объединить свойства двух массивов? - PullRequest
0 голосов
/ 29 мая 2019

Я сделал цикл for, который создает точки. Теперь я хочу покрасить их определенным образом. Как первые 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;

Ответы [ 2 ]

4 голосов
/ 29 мая 2019

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

 for(const { color, count } of [{ color: "Lavender", count: 200 }, { color: "burlyWood", count: 326 } /*..*/]) {
   for(let i = 0; i < count; i++) {
     circleColor = color;
     //...
   }
 }
1 голос
/ 29 мая 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...