Answer

Answer

t.me/js_test

Ответ:

function order(words) {
    return words
        .split(" ")
        .sort((a, b) => +a.match(/\d/) - +b.match(/\d/))
        .map((word) => word.match(/\D/g)?.join(""))
        .join(" ");
}

Обьяснение:

Первым делом строка разбивается на массив чтобы её легче было сортировать, затем вызывается метод sort в котором с помощью регулярного выражения из строк вычленяются цифры и сравниваются между собой. После того как массив отсортировался, опять с помощью регулярного выражения, из каждой получившейся строки выделяется массив всех не цифр и обратно преобразуется в строку с помощью метода join(join вызывается через опциональную цепочку потому что при передаче пустой строки в метод match он вернёт null и выскочит ошибка). Ну и заключительным этапом получившийся массив преобразуется в строку.

Код для проверки:

function order(words) {
    return words
        .split(" ")
        .sort((a, b) => +a.match(/\d/) - +b.match(/\d/))
        .map((word) => word.match(/\D/g)?.join(""))
        .join(" ");
}

console.log(order("is2 Thi1s t4est 3a")); // This is a test
console.log(order("javaSc3ript 1I li2ke")); // I like javaScript
console.log(order("4like Lot1s panca5kes pe3ople o2f")); // Lots of people like pancakes
console.log(order("")); // ""

Report Page