Please help me make sense of this working code that addresses LED individually

Hi, last year with the help of some wonderful people on this forum, I was able to write this code that addresses LEDs individually. It works great! Now I'm trying to write other code based on it and realized I don't fully understand it.

#include <FastLED.h>

#define NUM_LEDS 120
#define DATA_PIN 5
#define CLOCK_PIN 6

CRGB DOT[NUM_LEDS];

unsigned long previousMillis[NUM_LEDS] = {};
byte indexes[NUM_LEDS] = {0};
const byte MAX_NUM_OF_PERIODS =5;
long COLOR[][MAX_NUM_OF_PERIODS] =
{
  {0xFFFF00, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},
  {0xFF007F, 0x000000, 0x000000, 0x000000, -1},

  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},
  {0x000000, 0xFF007F, 0x000000, 0x000000, -1},

  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},
  {0x000000, 0x000000, 0xFF007F, 0x000000, -1},

  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
  {0x000000, 0x000000, 0x000000, 0xFF007F, -1},
};

int FR = 150;

void setup() {
  FastLED.addLeds<DOTSTAR, DATA_PIN, CLOCK_PIN, BGR> (DOT, NUM_LEDS);
  FastLED.setBrightness(10);
}

void loop() {
  unsigned long currentMillis = millis();

 for(int LED = 0; LED < NUM_LEDS; LED++) {
  if(currentMillis - previousMillis[LED] >= FR) {
    DOT[LED] = COLOR[LED][indexes[LED]];
    FastLED.show();

    previousMillis[LED] = currentMillis;
    indexes[LED]++;
  } 
  if (COLOR[LED][indexes[LED]] == -1) {
    indexes[LED] = 0;
  }
 }
}

Specifically this line DOT[LED] = COLOR[LED][indexes[LED]];

If I only look at the code it looks like it's doing
DOT[1] = COLOR[1][indexes[1]];
DOT[2] = COLOR[2][indexes[2]];
DOT[3] = COLOR[3][indexes[3]];
......

But what the leds actually do seems more like
DOT[1] = COLOR[1][indexes[1]];
DOT[2] = COLOR[2][indexes[1]];
DOT[3] = COLOR[3][indexes[1]];
......

Right now the way this code addresses LEDs is like
LED 1- frame 1, frame 2, frame 3...
LED 2- frame 1, frame 2, frame 3...
LED 3- frame 1, frame 2, frame 3...
......

I'm trying to modify it to be
frame 1 -LED 1, LED 2, LED 3...
frame 2 -LED 1, LED 2, LED 3...
frame 3 -LED 1, LED 2, LED 3...
......

Any help is appreciated!

If I only look at the code it looks like it's doing
DOT[1] = COLOR[1][indexes[1]];
DOT[2] = COLOR[2][indexes[2]];
DOT[3] = COLOR[3][indexes[3]];

It is not. The initial value of LED (the value in the []) is 0, and the last value used as an index is 119.

But what the leds actually do seems more like

What the code seems to actually do looks just like what you think the code is doing.

Keep in mind that indexes is also an array, and the values in that array keep changing, too.

Use Serial.print() statements to see the two index values in the COLOR[][] array that are being used to assign a value to DOT[]. They are likely not what you think they are.