Функция упорядочивания слов в предложении по числам

Разбейте предложение на слова, извлеките цифру из каждого и отсортируйте по её числовому значению. Сами слова изменять не нужно.

Короткий ответ

Что ответить на собеседовании

Разбейте предложение на слова, извлеките цифру из каждого и отсортируйте по её числовому значению. Сами слова изменять не нужно.

Подробный разбор

Ответ с пояснениями

Условие

Реализуйте функцию, получающую строку‑предложение, где каждое слово содержит одну цифру, и возвращающую новую строку, в которой слова расположены в порядке возрастания найденных цифр.

 reorderWords('T4est 3a Thi1s is2') === 'Thi1s is2 3a T4est';

Ответ

Разбейте предложение на слова, извлеките цифру из каждого и отсортируйте по её числовому значению. Сами слова изменять не нужно.

function reorderWords(text) {
  if (!text.trim()) return '';
  return text.trim().split(/\s+/).map(word => {
    const digits = word.match(/[0-9]/g);
    if (!digits || digits.length !== 1) throw new Error('В слове нужна одна цифра');
    return { word, order: Number(digits[0]) };
  }).sort((a, b) => a.order - b.order).map(item => item.word).join(' ');
}

Для n слов сортировка занимает O(n log n). При повторяющихся номерах стабильная сортировка сохраняет относительный порядок исходных слов.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее