how to animate leds without delay

I want to animate the leds on my arduino flashlight project.
The flashlight works fine now, but I want to add a SOS funcion, and maybe later a morse code function.

I programmed the flashlight without any delay functions. So for example voltage and temperature monitoring are working all the time.
Around 15 "programs" are running the same time.
But it's hard for me to animate a SOS without delay functions.
I think I need to use an array for that.
For example, an sos array may look like this...

int sosArray[18]={250,250,250,250,250,750,750,750,750,750,750,750,250,250,250,250,250,1750};

It may not be the perfect way to make morse code, but for my sos it will work fine.
I need a code that runs the array like this...
The array represents the duration of the "delay" like... turn led on, delay 250, turn led off, delay 250.....
But whats the code that uses this array to let a led blink sos without delay functions?
Maybe start with a "for function"?

Or is it better for animating leds to use one array for the brightness, and one array for duration?
Thats fine to, maybe even better for other animations.
But I still don't know how to make those two array function.

Adapt the blink without delay tutorial and instead of adding a fixed wait time when you flip the led state, take the timing from the array. You'll need to increment an index variable into the array at the same time. Don't forget to put it back to zero when you reach the end of your array.