Заменяйте каждый непробельный фрагмент его перевёрнутой версией. Такой подход сохраняет исходные пробелы, переводы строк и порядок слов.
Обратный порядок букв в каждом слове строки
Заменяйте каждый непробельный фрагмент его перевёрнутой версией. Такой подход сохраняет исходные пробелы, переводы строк и порядок слов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Необходимо написать функцию, принимающую строку и возвращающую её же, где каждое слово записано задом наперед, но порядок слов в тексте остаётся неизменным.
Ответ
Заменяйте каждый непробельный фрагмент его перевёрнутой версией. Такой подход сохраняет исходные пробелы, переводы строк и порядок слов.
function reverseEachWord(text) {
return text.replace(/\S+/g, word => [...word].reverse().join(''));
}
reverseEachWord('Hello world'); // 'olleH dlrow'
Пунктуация считается частью слова и разворачивается вместе с ним. Spread разбивает строку по кодовым точкам Unicode, но не по составным графемам. Для эмодзи из нескольких символов и комбинируемых знаков понадобится графемная сегментация. Время и память линейны по длине строки.