Разбор и альтернативная реализация функции

Функция разворачивает строку: идёт от последнего индекса к нулю и добавляет символы в result. Тело цикла пустое, потому что вся работа выполняется в третьем выражении for.

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

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

Функция разворачивает строку: идёт от последнего индекса к нулю и добавляет символы в result. Тело цикла пустое, потому что вся работа выполняется в третьем выражении for.

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

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

Условие

Выясните, какое действие выполняет функция wtf, и предложите её иной вариант реализации.

function wtf(str) {
  for (var idx = str.length - 1, result = ''; idx >= 0; result += str[idx--]) {
  }
  return result;
}

Ответ

Функция разворачивает строку: идёт от последнего индекса к нулю и добавляет символы в result. Тело цикла пустое, потому что вся работа выполняется в третьем выражении for.

Эквивалентный по UTF-16-поведению короткий вариант:

function reverse(text) {
  return text.split('').reverse().join('');
}

Исходный str[idx] и split('') работают по кодовым единицам и могут разорвать суррогатную пару эмодзи. Вариант [...text].reverse().join('') сохраняет кодовые точки, но всё ещё не объединяет составные графемы. Пустая строка возвращается пустой; понятное имя reverse лучше скрывающего смысл wtf.

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

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

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

Подробнее