pensei que ao dizer imperativo estava a conseguir explicar-me.
portanto, nao estou a dizer que nao é assim que se deve implementar algo deste genero, visto que nao mexo diariamente com js.
no entanto ao ler isto, dá para ver que tiveste que explicitar passo a passo o que querias que acontecesse (imperativo). eu até compreendo que seja assim, so estou a perguntar/confirmar se é mesmo assim ou há alternativas.