J, 1433 bytes
[(*1-~:,]`toupper/\)@e.&'aeiou'`(,:toupper)}
Try it online!Try it online!
]`toupper/.
In general, u`v/.
will alternately apply verb u
and v
to each element in a list. Here, we alternately apply the identity ]
and toupper
.
[:,
The above will return a 1-column matrix, though. So we need to flatten ,
the result.
Kind of shockingly long, but best I could find so far...