Koledzy zaproponowali użycie wyrażeń regularnych. Jest to dobry sposób.
Jako alternatywę i - prawdopodobnie - prostsze rozwiązanie do przyswojenia podam dwa przykłady w oparciu o pętle. Zakładam, że wyrazy i liczy są zawsze od siebie oddzielone spacją.
Dzielisz string za pomocą metody split, gdzie jako parametr podajesz spację (czyli " "). Otrzymujesz tablicę z wyrazami i liczbami.
Dalej można zastosować co najmniej dwie drogi:
1.
Zrobić dwie tablice i zastosować tyle samo razy metodę filter, gdzie rozdzielisz liczby od wyrazów na wspomniane tablice. Po czym połączyć ich elementy w stringi metodą join i zkonkatenować całość.
2.
Obrobić to w jednej pętli - zwykłym for. Ponownie utworzyć dwie zmienne, lecz tym razem typu string (czyli np. var str = '';). W pętli iterującej po tablicy podzielonych fragmentów wstawić warunek sprawdzający, czy fragment jest liczbą, czy nie, np. rzutując z użyciem funkcji Number. Liczby umieszczać w jednej zmiennej lub drugiej, od razu konkatenując wynik dodając spację na początku. Poza pętlą połączyć obie zmienne
Rozwiązania są o tyle prostsze w nauce, że nie wymagają od Ciebie znajomości wyrażeń regularnych. Na upartego dało by radę zapisać całość łańcuszkowo.