如何合并两个数组的属性?

时间:2019-05-29 12:05:44

标签: javascript arrays function

我制作了一个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 个答案:

答案 0 :(得分:4)

您可以保留一个对象数组,然后对其进行迭代:

 for(const { color, count } of [{ color: "Lavender", count: 200 }, { color: "burlyWood", count: 326 } /*..*/]) {
   for(let i = 0; i < count; i++) {
     circleColor = color;
     //...
   }
 }

答案 1 :(得分:1)

另一种实用的方法是生成一个数组,然后用颜色填充它:

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

然后,您可以遍历数组并获取商品的颜色。