Функция order

Функция order


Ответ:

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